Mybatis-generator 使用
一. 添加依赖
<!-- 首先要有mybatis的依赖 和数据库驱动 --><dependencies><!-- mybatis依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis-version}</version></dependency><!--数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${database-driver-version}</version></dependency></dependencies><build><plugins><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.4.1</version><configuration><!--mybatis的代码生成器的配置文件--><configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile><!--允许覆盖生成的文件--><overwrite>true</overwrite><!--将当前pom的依赖项添加到生成器的类路径中--><includeCompileDependencies>true</includeCompileDependencies></configuration></plugin></plugins></build>
这里的mybatis-version是2.3.2,database-driver-version是8.0.25
generatorConfig.xml 文件
这个文件将决定生成的东西
<?xml version="1.0" encoding="UTF-8" ?>
<!--mybatis的代码生成器相关配置-->
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!-- 引入配置文件 --><properties resource="generator.properties"/><!-- 一个数据库一个context,context的子元素必须按照它给出的顺序property*,plugin*,commentGenerator?,jdbcConnection,javaTypeResolver?,javaModelGenerator,sqlMapGenerator?,javaClientGenerator?,table+--><context id="myContext" targetRuntime="MyBatis3" defaultModelType="flat"><!-- 这个插件给生成的Java模型对象增加了equals和hashCode方法 --><!--<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"/>--><!-- 注释 --><commentGenerator><!-- 是否不生成注释 --><property name="suppressAllComments" value="true"/><!-- 不希望生成的注释中包含时间戳 --><!--<property name="suppressDate" value="true"/>--><!-- 添加 db 表中字段的注释,只有suppressAllComments为false时才生效--><!--<property name="addRemarkComments" value="true"/>--></commentGenerator><!-- jdbc连接 --><jdbcConnection driverClass="${spring.datasource.driverClassName}"connectionURL="${spring.datasource.url}"userId="${spring.datasource.username}"password="${spring.datasource.password}"><!--高版本的 mysql-connector-java 需要设置 nullCatalogMeansCurrent=true--><property name="nullCatalogMeansCurrent" value="true"/></jdbcConnection><!-- 类型转换 --><javaTypeResolver><!--是否使用bigDecimal,默认false。false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integertrue,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal--><property name="forceBigDecimals" value="true"/><!--默认falsefalse,将所有 JDBC 的时间类型解析为 java.util.Datetrue,将 JDBC 的时间类型按如下规则解析DATE -> java.time.LocalDateTIME -> java.time.LocalTimeTIMESTAMP -> java.time.LocalDateTimeTIME_WITH_TIMEZONE -> java.time.OffsetTimeTIMESTAMP_WITH_TIMEZONE -> java.time.OffsetDateTime--><!--<property name="useJSR310Types" value="false"/>--></javaTypeResolver><!-- 生成实体类地址 --><javaModelGenerator targetPackage="com.Lnn.entity" targetProject="src/main/java"><!-- 是否让 schema 作为包的后缀,默认为false --><!--<property name="enableSubPackages" value="false"/>--><!-- 是否针对string类型的字段在set方法中进行修剪,默认false --><property name="trimStrings" value="true"/></javaModelGenerator><!-- 生成Mapper.xml文件 --><sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"><!--<property name="enableSubPackages" value="false"/>--></sqlMapGenerator><!-- 生成 XxxMapper.java 接口--><javaClientGenerator targetPackage="com.Lnn.mapper" targetProject="src/main/java" type="XMLMAPPER"><!--<property name="enableSubPackages" value="false"/>--></javaClientGenerator><!-- schema为数据库名,oracle需要配置,mysql不需要配置。tableName为对应的数据库表名domainObjectName 是要生成的实体类名(可以不指定,默认按帕斯卡命名法将表名转换成类名)enableXXXByExample 默认为 true, 为 true 会生成一个对应Example帮助类,帮助你进行条件查询,不想要可以设为false--><table schema="" tableName="" domainObjectName=""enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false"enableUpdateByExample="false" selectByExampleQueryId="false"><!--是否使用实际列名,默认为false--><!--<property name="useActualColumnNames" value="false" />--></table></context>
</generatorConfiguration>
上面有个 generator.properties 配置文件,放在resource目录下,主要是不想在上面写死配置,本来想着读取application.yml文件的,但发现好像有问题,就另外弄了个.properties文件,下面是具体内容。
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
最后一步 具体修改
需要填写的两个地方:一个是实体、mapper、mapper.xml的存放位置;另一个则是根据数据库的表填写对应的table标签。
做完之后点击Maven插件中的mybatis-generator:generate 之后就ok了(这里指的是IDEA编辑器下,其他的大概要执行mvn指令)。