MyBatis Generator java生成方式小記

數據鏈接等相關的配置 xxx.properties

將xxx.properties放在項目的類路徑下。如: config/xxx.propertieshtml

project.base.dir=項目的全路徑
jdbc.url=xxx
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.username=xxx
jdbc.password=xxx

table.name=xxxx
domain.object.name=xxxx

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>
    <!--指定配置文件-->
    <properties resource="config/xxx.properties"/>
    <context id="DB2Tables" targetRuntime="MyBatis3" defaultModelType="flat">
        <!--覆蓋生成 Mapper XML 文件-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"/>
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自動生成的註釋 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--數據庫連接URL,用戶名、密碼 與properties文件一致 -->
        <jdbcConnection driverClass="${jdbc.driver}"
                        connectionURL="${jdbc.url}"
                        userId="${jdbc.username}"
                        password="${jdbc.password}">
        </jdbcConnection>

        <!-- 生成模型的包名和位置-->
        <javaModelGenerator targetPackage="org.mybatis.generator.entity"
                            targetProject="${project.base.dir}/src/test/java"/>
        <!-- 生成映射文件的包名和位置-->
        <sqlMapGenerator targetPackage="org.mybatis.generator.xml"
                         targetProject="${project.base.dir}/src/test/java"/>
        <!-- 生成DAO的包名和位置-->
        <!-- 註解生成方式 -->
        <!--<javaClientGenerator type="ANNOTATEDMAPPER"-->
        <!--                     targetPackage="org.mybatis.generator.mapper"-->
        <!--                     targetProject="${project.base.dir}/src/test/java">-->
        <!--</javaClientGenerator>-->
        <!-- 混合模式 -->
        <!--<javaClientGenerator type="MIXEDMAPPER"-->
        <!--                     targetPackage="org.mybatis.generator.mapper"-->
        <!--                     targetProject="${project.base.dir}/src/test/java">-->
        <!--</javaClientGenerator>-->
        <!-- xml文件生成方式 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="org.mybatis.generator.mapper"
                             targetProject="${project.base.dir}/src/test/java">
        </javaClientGenerator>
        <!-- 要生成的表 tableName是數據庫中的表名或視圖名 domainObjectName是實體類名-->
        <table tableName="${table.name}"
               domainObjectName="${domain.object.name}"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false"
        />
    </context>
</generatorConfiguration>

java編寫

/**
 * MyBatis Generator官網地址
 * http://www.mybatis.org/generator/index.html
 *
 * @author Chris
 * @version V1.0
 * @date 2019/05/13
 */
public class MybatisGenerator {
    public static void main(String[] args) {
        try {
            System.out.println("**************start generator***************");
            List<String> warnings = new ArrayList<>();
            File configFile = new File(MybatisGenerator.class.getResource("/config/generatorConfig.xml").getFile());
            ConfigurationParser cp = new ConfigurationParser(warnings);
            Configuration config = cp.parseConfiguration(configFile);
            DefaultShellCallback callback = new DefaultShellCallback(true);
            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
            myBatisGenerator.generate(null);
            warnings.forEach(System.out::println);
            System.out.println("*******************end generator*************");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
相關文章
相關標籤/搜索