<?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>
    <!-- 引入配置文件 -->
    <!--  可以用于加载配置项或者配置文件，在整个配置文件中就可以使用${propertyKey}的方式来引用配置项
    resource：配置资源加载地址，使用resource，MBG从classpath开始找，比如com/myproject/generatorConfig.properties
    url：配置资源加载地质，使用URL的方式，比如file:///C:/myfolder/generatorConfig.properties.
         注意，两个属性只能选址一个; -->
     <properties resource="init.properties"/>

    <!-- 指定数据连接驱动jar地址 -->
    <classPathEntry location="C:\Users\Worker\.m2\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar"/>

    <!-- 一个数据库一个context -->
    <!--targetRuntime="MyBatis3Simple" 不生成Mapper-->
    <context id="assetsoracle" >
        <!-- 自动生成toString方法 -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
        <!-- 自动生成equals方法和hashcode方法 -->
        <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />
        <!-- 存在即更新插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.UpsertPlugin">
            <!--
            支持upsertByExample，upsertByExampleSelective操作
            ！需开启allowMultiQueries=true多条sql提交操作，所以不建议使用！插件默认不开启
            -->
            <property name="allowMultiQueries" value="false"/>
            <!--
            开启批量功能，支持batchUpsert,batchUpsertWithBLOBs,batchUpserSelective
            ！这几个方法中无法支持IncrementsPlugin的方法！插件默认不开启
            -->
            <property name="allowBatchUpsert" value="fasle"/>
        </plugin>
        <!-- 批量插入插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.BatchInsertPlugin">
            <!--
            开启后可以实现官方插件根据属性是否为空决定是否插入该字段功能
            ！需开启allowMultiQueries=true多条sql提交操作，所以不建议使用！插件默认不开启
            -->
            <property name="allowMultiQueries" value="false"/>
        </plugin>
        <!-- Lombok插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.LombokPlugin">
            <!-- @Builder 必须在 Lombok 版本 >= 1.18.2 的情况下 -->
            <property name="@Builder" value="false"/>
            <!-- @NoArgsConstructor 和 @AllArgsConstructor 使用规则和Lombok一致 -->
            <property name="@AllArgsConstructor" value="false"/>
            <property name="@NoArgsConstructor" value="false"/>
        </plugin>
        <!-- 查询结果选择性返回插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.SelectSelectivePlugin" />
        <!-- Selective选择插入更新增强插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.SelectiveEnhancedPlugin"/>
        <!-- 批量插入插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.BatchInsertPlugin">
            <!--
            开启后可以实现官方插件根据属性是否为空决定是否插入该字段功能
            ！需开启allowMultiQueries=true多条sql提交操作，所以不建议使用！插件默认不开启
            -->
            <property name="allowMultiQueries" value="false"/>
        </plugin>
        <!-- Example 目标包修改插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.ExampleTargetPlugin">
            <!-- 修改Example类生成到目标包下 -->
            <property name="targetPackage" value="com.bailuntec.domain.example"/>
        </plugin>
        <!-- Example Criteria 增强插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.ExampleEnhancedPlugin">
            <!-- 是否支持已经过时的andIf方法（推荐使用when代替），默认支持 -->
            <property name="enableAndIf" value="true"/>
        </plugin>
        <!-- MySQL分页插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.LimitPlugin"/>
        <!-- 查询单条数据插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.SelectOneByExamplePlugin"/>


        <!-- 注释 -->
        <commentGenerator >
            <property name="suppressAllComments" value="false"/><!-- 是否取消注释 -->
            <property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳-->
        </commentGenerator>

        <!-- jdbc连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://gz-cdb-kp7s5i79.sql.tencentcdb.com:61691/bailun_datacenter?useUnicode=true&amp;characterEncoding=utf-8"
                        userId="root"
                        password="#7kfnymAM$Y9-Ntf"/>

        <!-- 类型转换 -->
        <javaTypeResolver type="org.mybatis.generator.internal.types.MyJavaTypeResolverDefaultImpl">
            <!-- 是否使用bigDecimal， false可自动转化以下类型（Long, Integer, Short, etc.） -->
            <property name="forceBigDecimals" value="true"/>
            <property name="useJSR310Types" value="true"/>
        </javaTypeResolver>

        <!-- 生成实体类地址 -->
        <javaModelGenerator targetPackage="com.bailuntec.domain.entity"
                            targetProject="src/main/java" >
            <!-- 是否在当前路径下新加一层schema,eg：fase路径com.oop.eksp.user.model， true:com.oop.eksp.user.model.[schemaName] -->
            <property name="enableSubPackages" value="false"/>
            <!-- 是否针对string类型的字段在set的时候进行trim调用 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- 生成mapxml文件 -->
        <sqlMapGenerator targetPackage="com.bailuntec.mapper"
                         targetProject="src/main/java" >
            <!-- 是否在当前路径下新加一层schema,eg：fase路径com.oop.eksp.user.model， true:com.oop.eksp.user.model.[schemaName] -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成mapxml对应client，也就是接口dao -->
        <javaClientGenerator targetPackage="com.bailuntec.mapper"
                             targetProject="src/main/java" type="XMLMAPPER" >
            <!-- 是否在当前路径下新加一层schema,eg：fase路径com.oop.eksp.user.model， true:com.oop.eksp.user.model.[schemaName] -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!-- 配置表信息 domainObjectName="${}"-->
        <table schema="bailun_datacenter" tableName="${table-name}"
                enableCountByExample="true"
               enableDeleteByExample="true" enableSelectByExample="true"
               enableUpdateByExample="true">
            <!-- schema即为数据库名 tableName为对应的数据库表 domainObjectName是要生成的实体类 enable*ByExample
                是否生成 example类   -->

            <!-- 忽略列，不生成bean 字段 -->
            <!-- <ignoreColumn column="FRED" />   -->
            <!-- 指定列的java数据类型 -->
            <!-- <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />   -->
            <property name="useActualColumnNames" value="false"/>
        </table>
    </context>
</generatorConfiguration>