Mybatis Generator 1.4.0 通过java编码和xml文件配置

环境:mac idea mysql mybatis-generator1.4.0

一、通过 java 编码和 xml 配置文件运行generator======> targetRuntime="MyBatis3"

1、配置 xml 文件,把该文件夹放到 project 根目录下

<!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="com\kenny\mybatis\generator\dbconnection.properties"></properties>-->
    <!-- 数据库连接配置 -->
    <context id="simple" targetRuntime="MyBatis3">
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL=""
                        userId=""
                        password=""/>

        <!--  -->
        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- javaModelGenerator:指定javaBean的生成策略
            targetPackage="test.model":目标包名
            targetProject="\MBGTestProject\src":目标工程
         -->
        <javaModelGenerator targetPackage="com.kenny.mybatis.vo"
                            targetProject="./src">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- sqlMapGenerator:sql映射生成策略: -->
        <sqlMapGenerator targetPackage="kenny.mapper"
                         targetProject="./mapper">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!-- javaClientGenerator:指定mapper接口所在的位置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.kenny.mybatis.dao"
                             targetProject="./src">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 指定要逆向分析哪些表:根据表要创建javaBean -->
        <table tableName="tbl_dept" domainObjectName="Department"></table>
        <table tableName="tbl_employee" domainObjectName="Employee"></table>
    </context>
</generatorConfiguration>
generator config xml

**注意:以上的配置文件中会生成PojoExample.java,并且生成方法,如果希望去掉,需要在 <table> 标签中增加以下属性

enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false" selectByExampleQueryId="false"

2、targetPackage 属性的定义为生成的包,可以不用事先在项目中创建文件夹,在逆向工程时,会自动创建包

3、逆向工程的代码

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

@SuppressWarnings("ConstantConditions")
public class MybatisGenerator {

    public static boolean generator() throws InterruptedException, SQLException, IOException {

        boolean result = false;

        List<String> warnings = new ArrayList<>();
        // 如果已经存在生成过的文件是否进行覆盖
        boolean overwrite = true;
        File configFile = new File("mbg.xml");


        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = null;
        try {
            config = cp.parseConfiguration(configFile);
        } catch (IOException e) {
            result = false;
            e.printStackTrace();

        } catch (XMLParserException e) {
            result = false;
            e.printStackTrace();
        }
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator generator = null;
        try {
            generator = new MyBatisGenerator(config, callback, warnings);
        } catch (InvalidConfigurationException e) {
            result = false;
            e.printStackTrace();
        }
        generator.generate(null);

        return result;
    }


}
逆向工程生成代码

4、需要的jar 包

二、通过 java 编码和 xml 配置文件运行generator======> targetRuntime="MyBatis3DynamicSql"  该设置为 default

1、需要引入新 jar 包:javax.annotation 和 dynamic-sql

<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
       <groupId>org.mybatis.dynamic-sql</groupId>
       <artifactId>mybatis-dynamic-sql</artifactId>
        <version>1.1.4</version>
</dependency>

 

2、修改 xml 文件

     1⃣️. javaClientGenerator 标签,采用 annotation模式

     2⃣️.去掉配置文件中 sqlMapGenerator 标签,该标签在动态sql模式下不起作用

posted @ 2020-02-05 16:32  KennyWang0314  阅读(1112)  评论(0编辑  收藏  举报