MyBatis Generator
2023-04-02, by alamide
- 官方文档在这里
1. 引入插件
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.2</version>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.13</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
...
</project>
2. 配置文件
generatorConfig.xml
<!DOCTYPE generatorConfiguration PUBLIC
"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="simple" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis_generator"
password="root"
userId="root"/>
<javaTypeResolver>
<property name="useJSR310Types" value="true"/>
<property name="forceBigDecimals" value="true"/>
</javaTypeResolver>
<javaModelGenerator targetPackage="com.alamide.guli.entity" targetProject="src/main/java">
<property name="exampleTargetPackage" value="com.alamide.generator.entity.example"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.alamide.generator.mapper" targetProject="src/main/java"/>
<table tableName="edu_teacher"/>
</context>
</generatorConfiguration>
3.配置文件属性
3.1 <jdbcConnection/>
配置 JDBC Connection
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis_generator"
password="root"
userId="root"/>
3.2 <commentGenerator/>
注释相关,不太重要
Property Name | Property Values |
---|---|
suppressAllComments | false or true 默认false,是否不写注释 |
suppressDate | false or true 默认 false,在注释中是否添加时间戳 |
addRemarkComments | false or true 默认 false,是否在注释中加上数据库的注释 |
dateFormat | 注释中 日期的格式 yyyy-MM-dd HH:mm:ss |
<commentGenerator>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
3.3 <javaModelGenerator/>
Java Model
相关,具体的配置如下
必须属性
Attribute | Description |
---|---|
targetPackage | 生的 Java Model 包目录 |
targetProject | 目标工程位置,如:src/main/java |
可选属性
Property Name | Property Values |
---|---|
constructorBased | false or true 默认false,是否生成有参,无参构造器 |
rootClass | 父类全类名,如配置最终 extends 这个类,不能实现接口,如 implements Serializable |
3.4 <sqlMapGenerator/>
Mybatis
映射文件配置
Attribute | Description |
---|---|
targetPackage | 生的包目录,如 mapper |
targetProject | 目标工程位置,src/main/resources |
3.5 <javaClientGenerator/>
Mybatis Mapper
接口
<javaClientGenerator type="XMLMAPPER" targetPackage="com.alamide.generator.mapper" targetProject="src/main/java"/>
3.6 <table/>
-
tableName
表名 -
domainObjectName
生成的Java Model
类名,不配置则依据表名生成
3.6.1 <columnOverride>
可以在生成 Java Model
的时候,对字段进行一些转换,例如数据库的有一些表中,有 is_deleted
软删除字段,类型为 TINYINT
。默认会被转换为 Byte
型,
在使用的时候会有一些不便,希望转换为 Integer
型
<table tableName="t_example">
<columnOverride column="is_deleted" jdbcType="TINYINT" javaType="java.lang.Integer"/>
</table>
3.7 <javaTypeResolver/>
类型转换器
Property Name | Property Values |
---|---|
forceBigDecimals | 默认 false,把 JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true 时把 JDBC DECIMAL和 NUMERIC 类型解析为 java.math.BigDecimal |
useJSR310Types | 是否使用 JSR-310 标准,默认为 false,为 true 时,DATE->java.time.LocalDate,TIME->java.time.LocalTime,TIMESTAMP->java.time.LocalDateTime |
~ belongs to alamide@163.com