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>

    代码效果:

  • 相关阅读:
    读书书单
    Kafka学习-Producer和Customer
    Kafka学习-简介
    Maven学习-Profile详解
    Maven学习-项目对象模型
    Maven学习-优化和重构POM
    Maven学习-构建项目
    Maven学习-简介、安装
    连接web端,mysql,返回乱码解决
    android alipay
  • 原文地址:https://www.cnblogs.com/Qi1007/p/9828502.html
Copyright © 2011-2022 走看看