读者指南

我写作MBG系列博客目的:

1、关注一个开源项目

2、定制MBG代码生成

有相同兴趣的朋友可以浏览下这里的博客,有不足之处还请多多指教。

 

1、MBG介绍

Mybatis Generator项目用来根据mysql数据表生成javva或kotlin代码。项目代码在GitHub上开源。
 

2、下载MBG代码

地址 https://github.com/mybatis/generator
 

3、导入代码

MBG使用maven管理项目,直接用idea打开generator/core目录即可。
 

4、使用MBG生成mapper和java文件

如下图所示,添加xml配置和测试代码文件。直接运行测试代码即可。
 
xml配置如下,注意修改targetProject和targetPackage
<?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>

    <!-- 数据库驱动 -->
    <classPathEntry location="lib/mysql-connector-java-5.1.18.jar"/>

    <context id="MySQLTables" targetRuntime="MyBatis3">

        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="false"/>
        </commentGenerator>

        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/kspage" userId="root"
                        password="123">
        </jdbcConnection>

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

        <!-- 生成模型的包名和位置 -->
        <javaModelGenerator targetPackage="com.test"
                            targetProject="/Users/kyh/testmbg">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- 生成映射文件的包名和位置 -->
        <sqlMapGenerator targetPackage="com.test.mapper"
                         targetProject="/Users/kyh/testmbg">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!-- 生成DAO的包名和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.test" targetProject="/Users/kyh/testmbg">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!-- 配置生成表 -->
        <table tableName="apps" enableCountByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               enableUpdateByExample="false">
            <property name="modelOnly" value="false"/>
        </table>

    </context>

</generatorConfiguration>
View Code

 

 
测试代码内容如下
package org.mybatis.generator;

import org.mybatis.generator.api.ShellRunner;

/**
 * Description
 * <p>
 * </p>
 * DATE 2020-05-06.
 *
 * @author ====.
 */
public class MyTest {

    public static void main(String[] args) {
        String config = MyTest.class.getClassLoader().getResource("generatorConfig.xml").getFile();
        String[] arg = {"-configfile", config, "-overwrite"};
        ShellRunner.main(arg);
    }
}
View Code

 

运行代码后生成的内容如下: