前言
这段时间转换了新的技术栈,正在学习和使用Java web开发的相关语言。公司里主要是springboot2.x和Mybatis,经过学习和摸索,下面记录一下Springboot2.x 集成Mybatis官方代码生成器的步骤,以供后续学习使用。
这里用到的数据库是postgresql,pom.xml引入postgresql的相关依赖:
1 | <dependency> |
2 | <groupId>org.mybatis.spring.boot</groupId> |
3 | <artifactId>mybatis-spring-boot-starter</artifactId> |
4 | <version>2.2.0</version> |
5 | </dependency> |
6 | <dependency> |
7 | <groupId>org.postgresql</groupId> |
8 | <artifactId>postgresql</artifactId> |
9 | <scope>runtime</scope> |
10 | </dependency> |
11 | <dependency> |
12 | <groupId>org.mybatis.generator</groupId> |
13 | <artifactId>mybatis-generator-core</artifactId> |
14 | <version>1.4.0</version> |
15 | </dependency> |
一、官网Quick Start Guide
经过这段时间的学习发现,学习一项新的东西,最开始还是去看官网的介绍比较清晰明了。
基本步骤就是:
- 创建配置文件
- 运行MBG命令
- 生成代码
官网有4种不同的配置示例,考虑到团队协作情况,这次使用的还是Mybatis3。
第一种方式MyBatis3DynamicSql
是目标比较先进的,但是考虑到学习成本和该插件还在持续不断的拓展中,还是先学习Mybatis3先。
官网配置示例如下:
1 |
|
2 |
|
3 |
|
4 | <generatorConfiguration> |
5 | <context id="simple" targetRuntime="MyBatis3Simple"> |
6 | <!-- 数据库配置--> |
7 | <jdbcConnection driverClass="org.hsqldb.jdbcDriver" |
8 | connectionURL="jdbc:hsqldb:mem:aname" /> |
9 | <!-- model类的位置 --> |
10 | <javaModelGenerator targetPackage="example.model" targetProject="src/main/java"/> |
11 | <!-- mapper xml的位置 --> |
12 | <sqlMapGenerator targetPackage="example.mapper" targetProject="src/main/resources"/> |
13 | <!-- mapper类的位置 --> |
14 | <javaClientGenerator type="XMLMAPPER" targetPackage="example.mapper" targetProject="src/main/java"/> |
15 | <!--要生成的表名--> |
16 | <table tableName="FooTable" /> |
17 | </context> |
18 | </generatorConfiguration> |
二、使用Maven运行Mybatis生成器
官网有几种运行Mybatis生成器的方式,如命令行,Ant,java,Maven等,这里使用Maven。
在pom.xml的<plugins>
中添加如下代码:
1 | <!--mybatis自动代码生成器插件--> |
2 | <plugin> |
3 | <groupId>org.mybatis.generator</groupId> |
4 | <artifactId>mybatis-generator-maven-plugin</artifactId> |
5 | <version>1.3.6</version> |
6 | <configuration> |
7 | <!--配置文件位置--> |
8 | <configurationFile>src/main/resources/generator/mybatis-generator-config.xml</configurationFile> |
9 | <overwrite>true</overwrite> |
10 | <verbose>true</verbose> |
11 | </configuration> |
12 | <dependencies> |
13 | <dependency> |
14 | <groupId>org.postgresql</groupId> |
15 | <artifactId>postgresql</artifactId> |
16 | <version>42.2.18</version> |
17 | </dependency> |
18 | </dependencies> |
19 | </plugin> |
注意:要把<configurationFile>
修改成你自己的配置文件所在位置。
mybatis代码生成器配置文件mybatis-generator-config.xml
:
1 |
|
2 |
|
3 |
|
4 |
|
5 | <generatorConfiguration> |
6 | |
7 | <context id="PostgreSql" targetRuntime="MyBatis3" defaultModelType="flat"> |
8 | <!-- 自动检查关键字,为关键字增加反引号 --> |
9 | <property name="autoDelimitKeywords" value="true"/> |
10 | <property name="beginningDelimiter" value="`"/> |
11 | <property name="endingDelimiter" value="`"/> |
12 | |
13 | <!-- 生成的实体类添加toString()方法 --> |
14 | <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/> |
15 | |
16 | <!-- 不生成注释 --> |
17 | <commentGenerator> |
18 | <property name="suppressAllComments" value="true"/> |
19 | </commentGenerator> |
20 | |
21 | <!-- 数据库连接 --> |
22 | <jdbcConnection driverClass="org.postgresql.Driver" |
23 | connectionURL="jdbc:postgresql://localhost:5432/postgres" |
24 | userId="postgres" |
25 | password="123456"> |
26 | </jdbcConnection> |
27 | |
28 | <!-- model类的位置 --> |
29 | <javaModelGenerator targetProject="src\main\java" |
30 | targetPackage="com.study.mybatis.model"/> |
31 | |
32 | <!-- mapper xml的位置 --> |
33 | <sqlMapGenerator targetProject="src\main\resources" |
34 | targetPackage="mapper"/> |
35 | |
36 | <!-- mapper类的位置 --> |
37 | <javaClientGenerator targetProject="src\main\java" |
38 | targetPackage="com.study.mybatis.mapper" |
39 | type="XMLMAPPER"/> |
40 | |
41 | <!--要生成的表名--> |
42 | <table schema="public" tableName="company"/> |
43 | <table schema="public" tableName="company_type"/> |
44 | </context> |
45 | </generatorConfiguration> |
三、执行maven命令生成代码:
执行后生成代码如下: