当前位置: 代码迷 >> 综合 >> Springboot +TkMapper +generator 搭建
  详细解决方案

Springboot +TkMapper +generator 搭建

热度:70   发布时间:2023-11-17 13:41:28.0

一、开场白

许多小伙伴,搭建一个mybatis的javaWeb项目是不是网上的类型很多啊,或者说只是搭建一部分,那都是浪费时间,我今天给大家搭建的这个项目是很方便的:

       1. 采用mybatis作为交互层

        2. 用到了tkMapper的方便性

        3. 还加入了generator进行mapper,xml,model的生成

        4. mapper和xml在同一目录,方便管理

二、实际开发

1. 我们先搭建一个springboot的项目,这个就不细说了。

2. 我们先搭建 generator 来生成mapper和xml以及model:

<1> pom中加入以下代码

  <!--Mybatis generator 映射文件自动生成--><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.7</version><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.21</version></dependency><dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>4.0.4</version></dependency><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.7</version></dependency></dependencies><!--Mybatis generator 配置文件 generatorCongig.xml 的路径--><configuration><configurationFile>src/main/resources/generatorConfig.xml</configurationFile><overwrite>true</overwrite></configuration></plugin>

<2> .在resources下面加入 generatorConfig.xml,记得修改数据库和路径

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><context defaultModelType="flat" id="mysql" targetRuntime="MyBatis3Simple"><!-- 生成的Java文件的编码 --><property name="javaFileEncoding" value="UTF-8"/><!-- 生成根Mapper 所有的Mappwe都 继承这个 根   --><!-- 这个地方 注意一下 , 和你配置的 Application上面 MapperScan 的 mapper包扫描 不要再一个文件夹下,比如我的 我的包扫描是 @MapperScan("com.jzj.tkdemo.dao") 这个地方是 其他的包总而言之就是  BaseMapper 不要放在Mapper的 包扫描中, 具体原因看 下面介绍--><plugin type="tk.mybatis.mapper.generator.MapperPlugin"><property name="mappers" value="tk.mybatis.mapper.common.Mapper"/></plugin><jdbcConnectiondriverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/security"userId="root"password="root"></jdbcConnection><!-- 生成的数据库实体 PO 所在位置 --><javaModelGenerator targetPackage="com.zhuzi.part.security.dao.model"targetProject="src/main/java"></javaModelGenerator><!-- MAPPER XML java 文件所在位置--><sqlMapGenerator targetPackage="com.zhuzi.part.security.dao.mapper"targetProject="src/main/java"></sqlMapGenerator><!-- Mapper.java 所在的文件夹,也就是mapper接口 文件夹1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;2,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;3.这个包是 com.jzj.tkdemo.dao  不要把上面的BaseMapper 放在下面 切记切记--><javaClientGenerator targetPackage="com.zhuzi.part.security.dao.mapper"targetProject="src/main/java"type="XMLMAPPER"></javaClientGenerator><!-- user 是数据库表, UserPO 是你根据报表 要生成的 实体类--><table schema="" tableName="s_user" domainObjectName="User"></table></context>
</generatorConfiguration>

这就配好了,下面我们找到下图运行

我们的代码就生成了

<3> . springboot的src中不认识xml静态文件,我们在pom中加入下面的东西就ok了

 

 <resources><!-- 设置对*.properties进行过虑,即这些文件中的${key}会被替换掉为真正的值 --><resource><directory>src/main/resources</directory><filtering>true</filtering><excludes><exclude>**/*.woff</exclude><exclude>**/*.woff2</exclude><exclude>**/*.ttf</exclude></excludes></resource><resource><directory>src/main/resources</directory><filtering>false</filtering><includes><include>**/*.woff</include><include>**/*.woff2</include><include>**/*.ttf</include></includes></resource><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><!-- 是否替换资源中的属性 --><filtering>false</filtering></resource></resources>

<4> . 配置我们的mybatis了

现在pom中加入下面jar

   <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.11</version></dependency><!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.1.5</version></dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency>

在在yml中配置好数据库

spring:datasource:password: rooturl: jdbc:mysql://127.0.0.1:3306/securitydriver-class-name: com.mysql.jdbc.Driverusername: root

完了在启动类加入这个注解

import tk.mybatis.spring.annotation.MapperScan;@SpringBootApplication
@MapperScan("com.zhuzi.part.security.dao.mapper")

到这就配置完了,我们来写接口测试一下


@RestController
public class UserController {@Autowiredprivate UserService userService;@PostMapping("/user")public User userAdd(@RequestBody User user){return userService.addUser(user);}@DeleteMapping("/user")public boolean useDelete(@PathVariable int id){return userService.addDelete(id);}@GetMapping("/user")public List<User> useSelect(){return userService.selectUser();}}
public interface UserService {User addUser(User user);boolean addDelete(int id);List<User> selectUser();
}
@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic User addUser(User user) {return (userMapper.insert(user) > 0)? user : null;}@Overridepublic boolean addDelete(int id) {return userMapper.deleteByPrimaryKey(id) > 0 ? true:false;}@Overridepublic List<User> selectUser() {return userMapper.selectAll();}
}

这就完了,这就是我说的tkmapper的方便之处,基础的增删改查不用自己写,是不是被git到了。

注:如果你连collection都不想写,你去mybatis-plus去将代码生成器配置好,就好了

如果有问题扫这个神奇的二维码会解答你的一切问题