1、创建配置文件generatorConfig.xml
generatorConfig.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>
<context id="xxx" targetRuntime="MyBatis3Simple">
<!--清除实体类中的注释-->
<commentGenerator>
<property name="suppressDate" value="false" />
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="org.mariadb.jdbc.Driver"
connectionURL="jdbc:mariadb://localhost/logisticsDB"
userId="root" password="Qi1007..">
</jdbcConnection>
<javaModelGenerator targetPackage="com.xiaobai.model" targetProject="E:JavaIdeaMyBatis_Generatorsrcmainjava">
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="mapper" targetProject="E:JavaIdeaMyBatis_Generatorsrcmain
esources"/>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.xiaobai.dao" targetProject="E:JavaIdeaMyBatis_Generatorsrcmainjava"/>
<table tableName="ecs_%">
<generatedKey column="id" sqlStatement="Mysql"/>
</table>
</context>
</generatorConfiguration>
2、在 pom.xml 中配置插件
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
</plugin>
3、执行 pom 任务
mvn mybatis-generator:generate mvn mybatis-generator:generate -Dmybatis.generator.overwrite=true # 可以传入参数
4、配置文件总览
<?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="xxx/yyy/zzz.properties" />
<classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.jar" /> <!-- 添加到 classpath -->
<context id="DB2Tables" introspectedColumnImpl="To Extend MBG"
targetRuntime="MyBatis3|MyBatis3Simple|MyBatis3DynamicSql" <!-- MyBatis3Simple 没 Example 有少量动态 SQL -->
defaultModelType="conditional|flat|hierarchical"> <!-- flat: one domain for one table -->
<!-- 添加插件支持 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
<plugin type="com.nextlevel.fastlane.mybatis.plugins.SerializablePlugin"></plugin>
<plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"></plugin>
<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />
<!-- 设置参数 -->
<property name="suppressTypeWarnings" value="true"/>
<property name="javaFileEncoding" value="UTF-8"/>
<property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
<property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
<property name="autoDelimitKeywords" value="false"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!-- 数据库连接 -->
<jdbcConnection <!-- 也可以用 connectionFactory -->
driverClass="com.ibm.db2.jdbc.app.DB2Driver"
connectionURL="jdbc:db2:TEST"
userId="${user}"
password="${password}">
</jdbcConnection>
<!-- 类型转化规则 -->
<javaTypeResolver type>
<property name="forceBigDecimals" value="false" /> <!-- 是否使用 BigDecimal 类 -->
<property name="useJSR310Types" value="true" /> <!-- 是否使用 LocalDate/LocalTime 类 -->
</javaTypeResolver>
<!-- 注释生成规则 -->
<commentGenerator type>
<property name="suppressDate" value="true" /> <!-- 取消时间戳 -->
<property name="suppressAllComments|addRemarkComments|dateFormat" />
</commentGenerator>
<!-- Model生成规则 -->
<javaModelGenerator targetPackage="test.model" targetProject="MBGTestProjectsrc">
<property name="enableSubPackages" value="true" /> <!-- true: will under test.model.schema.* -->
<property name="trimStrings" value="true" />
<property name="constructorBased|immutable|rootClass" />
</javaModelGenerator>
<!-- Mapper.xml 规则 -->
<sqlMapGenerator targetPackage="test.xml" targetProject="MBGTestProjectsrc">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- dao 规则 -->
<javaClientGenerator type="XMLMAPPER|ANNOTATEDMAPPER" targetPackage="test.dao" targetProject="MBGTestProjectsrc">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 定制要转化的 table -->
<table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer"
enableInsert|enableSelectByPrimaryKey|enableUpdateByPrimaryKey|enableDeleteByPrimaryKey|selectByPrimaryKeyQueryId
enableDeleteByExample|enableCountByExample|enableUpdateByExample|selectByExampleQueryId|enableSelectByExample
modelType|escapeWildcards|delimitIdentifiers|delimitAllColumns>
<property name="useActualColumnNames" value="true"/> <!-- 驼峰 -->
<property name="trimStrings|constructorBased|..." />
<generatedKey column="ID" sqlStatement="JDBC|DB2|MySql|SqlServer" identity="true" /> <!-- 主键 -->
<ignoreColumn column="FRED" /> <!-- 忽略 -->
<ignoreColumnsByRegex pattern="(?i)col.*"> <!-- 按匹配忽略 -->
<except column="col01"/>
<except column="col13"/>
</ignoreColumnsByRegex>
<columnOverride column="DATE_FIELD" property="startDate" /> <!-- 定义转换 -->
<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> <!-- 定义类型 -->
<columnOverride column|property|javaType|jdbcType|typeHandler|delimitedColumnName|isGeneratedAlways>
<property name="trimStrings" value="true" />
</columnOverride>
<columnRenamingRule searchString="^CUST_" replaceString="" /> <!-- 除去字段前缀 -->
<domainObjectRenamingRule searchString="^Sys" replaceString="" /> <!-- 除去表前缀 -->
</table>
</context>
</generatorConfiguration>
代码效果:
