MyBatis-Generator 基本使用方法

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>

代码效果:

原文地址:https://www.cnblogs.com/Qi1007/p/9828502.html