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>
代码效果: