springboot集成Mybatis代码生成插件及通用Mapper

springboot和mybatis集成时,有些实体类和Mapper还需要自己手动去写,这多少有些麻烦,有一款可以自动生成Mapper代码的插件,使用起来很方便

和springboot集成

添加maven依赖

1
2
3
4
5
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>

配置相关属性

1
2
mapper.not-empty=false
mapper.identity=MYSQL

@MapperScan 注解配置
直接配置到 Spring Boot 的启动类上,如下

1
2
3
4
5
6
7
8
9
@SpringBootApplication
@tk.mybatis.spring.annotation.MapperScan("com.dxysun.contentsales.dao")
public class ContentsalesApplication {

public static void main(String[] args) {
SpringApplication.run(ContentsalesApplication.class, args);
}

}

我的Mapper包名为com.dxysun.contentsales.dao

代码生成器

我主要使用Maven插件的方式生成代码,更多方式参考文末的官方文档
通用 Mapper 专用代码生成器生成的 Model 会在原有基础上增加 @Table,@Id,@Column 等注解,方便自动会数据库字段进行映射。
Maven 中的插件配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<configurationFile>
${basedir}/src/main/resources/generator/generatorConfig.xml
</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>

配置文件generatorConfig.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?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>
<!--加载配置文件,为下面读取数据库信息准备-->
<properties resource="application.properties"/>

<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">

<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper" />
<!--caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true-->
<property name="caseSensitive" value="true"/>
</plugin>

<!-- 阻止生成自动注释 -->
<commentGenerator>
<property name="javaFileEncoding" value="UTF-8"/>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>

<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="${spring.datasource.driver-class-name}"
connectionURL="${spring.datasource.url}"
userId="${spring.datasource.username}"
password="${spring.datasource.password}">
</jdbcConnection>

<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>

<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="com.dxysun.contentsales.meta" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>

<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>

<!--生成Dao类存放位置-->
<!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.dxysun.contentsales.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>

<!--生成对应表及类名
去掉Mybatis Generator生成的一堆 example
-->
<table tableName="user" domainObjectName="User">
<generatedKey column="id" sqlStatement="Mysql" identity="true"/>
</table>
<table tableName="cart" domainObjectName="Cart">
<generatedKey column="id" sqlStatement="Mysql" identity="true"/>
</table>
<table tableName="commodity" domainObjectName="Commodity">
<generatedKey column="id" sqlStatement="Mysql" identity="true"/>
</table>


</context>
</generatorConfiguration>

运行

在 pom.xml 这一级目录的命令行窗口执行 mvn mybatis-generator:generate即可(前提是配置了mvn)。
在相应目录下就会生成model代码,Mapper代码和xml文件

参考

更多内容参考
官方github地址

打赏

请我喝杯咖啡吧~

支付宝
微信