zoukankan      html  css  js  c++  java
  • 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>

    代码效果:

  • 相关阅读:
    新概念第二册(1)--英语口语听力课1
    外企面试课程(一)---熟悉常见的缩略词
    公司 邮件 翻译 培训 长难句 结课
    workflow
    公司 邮件 翻译 培训 长难句 20
    公司 邮件 翻译 培训 长难句 19
    Engineering Management
    公司 邮件 翻译 培训 长难句 18
    公司 邮件 翻译 培训 长难句 17
    第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头
  • 原文地址:https://www.cnblogs.com/Qi1007/p/9828502.html
Copyright © 2011-2022 走看看