tk-mybatis 是mybatis的一个功能扩展,可以在原有方法的基础之上提供更多的功能可用,如一个基类Mapper, 继承他就相当于拥有了常用的增删改查等功能,无需再每个mapper文件中都写增删改查,非常方便。那么接下来我们来开始。
1. 引入依赖包,我们使用的是springboot 2.1.4 这个版本,再pom中先引入依赖
<!--通用mapper,使用mapper模板进行-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
2. 引入自动生成插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- mybatis逆向工程插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<configurationFile>src/main/resources/generator.xml</configurationFile>
<!--允许移动生成的文件 -->
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<!--下面这两个依赖不引入是不会逆向生成的-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.4.5</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
3. 再src/main/resources/ 下创建 generator.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 引入 application.properties -->
<properties resource="application.properties" />
<!-- MyBatis3Simple:不生成 Example相关类及方法 defaultModelType="flat" -->
<context id="MysqlContext" targetRuntime="MyBatis3Simple" >
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!-- 指定生成 Mapper 的继承模板 -->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="${generator.mappers}"/>
</plugin>
<!--注意context内的文件要按序放-->
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- jdbc 连接配置 -->
<jdbcConnection driverClass="${spring.datasource.driver-class-name}"
connectionURL="${spring.datasource.url}"
userId="${spring.datasource.username}"
password="${spring.datasource.password}">
</jdbcConnection>
<javaTypeResolver>
<!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成实体类的包名和位置 ,targetPackage指的是包名,targetProject值得是路径位置-->
<!-- 对于生成的pojo所在包,pojo其实就是domain Entity-->
<javaModelGenerator targetPackage="${generator.javaModel-targetPackage}" targetProject="${generator.targetProject}">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 对于生成的mapper.xml所在目录 -->
<sqlMapGenerator targetPackage="${generator.sqlMap-targetPackage}" targetProject="src/main/resources"/>
<!-- 配置mapper对应的java映射 也可以叫dao层 -->
<javaClientGenerator targetPackage="${generator.javaClient-targetPackage}" targetProject="${generator.targetProject}"
type="XMLMAPPER"/>
<!-- table可以有多个,每个数据库中的表都可以写一个table,tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 -->
<table tableName="cl_sku"></table>
</context>
</generatorConfiguration>
4. 在application.properties文件中引入数据库的配置和generator的配置
#datasource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
# Generator
generator.targetProject=src/main/java
#mapper的父类
generator.mappers=tk.mybatis.mapper.common.Mapper
#pojo所在报名
generator.javaModel-targetPackage=com.xxx.demo.pojo
#mapper.xml位于resource文件夹下的哪个目录中
generator.sqlMap-targetPackage=mapper
#mapper包名
generator.javaClient-targetPackage=com.xxx.demo.mapper
5. 运行插件: run-->configuration: mybatis-generator:generate
6. 刷新项目,出现对应文件。.
上述功能是使用sts(eclipse) 开发的,从功能的角度来讲,如果需要自动生成代码,还是推荐使用mybatis-plus ,他不仅可以生成mapper,还能够生成service, 并且包含分页及封装非常好的查询功能。 所以如果有权利选择框架,还是推荐使用mybatis-plus.