逆向工程----MBG

Posted 大忽悠爱忽悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逆向工程----MBG相关的知识,希望对你有一定的参考价值。

逆向工程概念


MBG概念


步骤1: 导入相关依赖

<!--MBG需要的依赖-->
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.7</version>
        </dependency>

引入mybatis-generator.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="jdbc.properties"/>
    <!--引用mybatis-generator驱动 已导入包,可以不用引用-->
    <!--<classPathEntry location="E:\\maven-repository\\org\\mybatis\\generator\\mybatis-generator-core\\1.3.7\\mybatis-generator-core-1.3.7.jar"/>-->

    <!--context:
        id:唯一标识
        targetRuntime:运行时环境。MyBatis3DynamicSql(默认值)|MyBatis3|MyBatis3Simple
        defaultModelType:生成对象类型。conditional|flat|hierarchical
    -->
    <!--
     targetRuntime="MyBatis3" :生成复杂版的增删查改
     targetRuntime="MyBatis3Simple":生成简单版的增删查改
    -->
    <context id="mysql_generator" defaultModelType="flat"
             targetRuntime="MyBatis3">
        <!--javaFileEncoding 设置生成的文件编码格式。不设置,使用平台默认编码-->
        <property name="javaFileEncoding" value="UTF-8"/>
        <!--targetJava8 设置生成的代码可以使用Java8+功能。默认值true-->
        <property name="targetJava8" value="true"/>

        <!--plugin 插件配置-->
        <!--<plugin type=""></plugin>-->

        <!--commentGenerator 注释相关设置 -->
        <commentGenerator>
            <!--设置 生成的代码是否包含注释 默认false 生成注释。 true:不生成注释-->
            <property name="suppressAllComments" value="false"/>
        </commentGenerator>
        <!-- 数据库连接配置 connectionFactory和jdbcConnection 标签二选一-->
<!--        <connectionFactory>
            <property name="driverClass" value="${jdbc.driver}"/>
            <property name="connectionURL" value="${jdbc.url}"/>
            <property name="userId" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </connectionFactory>-->
        <!-- 数据库连接配置 connectionFactory和jdbcConnection 标签二选一-->
        <jdbcConnection
        driverClass="${jdbc.driver}"
        connectionURL="${jdbc.url}"
        userId="${jdbc.username}"
        password="${jdbc.password}"
        />

        <!--Java类型解析器用于根据数据库列信息计算Java类型-->
        <!--<javaTypeResolver>-->

        <!--</javaTypeResolver>-->

        <!--定义Java模型生成器的属性
               targetPackage:生成POJO代码存放的package的位置,即生成的POJO放在哪个包下面
               targetProject:生成的代码存放的项目路径
        -->
        <javaModelGenerator targetPackage="Com.POJO"
                            targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!--mapper xml文件位置,sql映射文件生成器,指定xml文件生成位置-->
        <sqlMapGenerator targetPackage="MyBaits.mapper" targetProject="src/main/resources">
            <!-- enableSubPackages:是否让schema作为包的后缀 默认false -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!--dao接口生成的地方-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="Com.Dao" targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 默认false -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!--table:指定要逆向生成哪个数据表
           tableName:指定表名
           domainObjectName:数据库中的表对应生成的实体类的名字
           如果这里不指定对象名,默认就是表名大写
           -->
        <table tableName="lock" domainObjectName="Lock"></table>
        <!--如果想要生成多张表,下面可以继续添加-->
        <!--<table tableName="tb_users2"></table>-->
    </context>

</generatorConfiguration>

使用代码运行,也可以用命令行

public class test {
    @Test
    public void testMBG() throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;

        ConfigurationParser cp = new ConfigurationParser(warnings);
        Reader reader = Resources.getResourceAsReader("mbg.xml");
        Configuration config = cp.parseConfiguration(reader);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }
}


效果


小tips


MBG的具体使用看这篇文章

MBG的使用

以上是关于逆向工程----MBG的主要内容,如果未能解决你的问题,请参考以下文章

mybatis逆向工程mbg

13.3.2 完整的MBG配置文件(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》

13.3.2 完整的MBG配置文件(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》

13.3.3 MBG其他配置(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》

13.3.3 MBG其他配置(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》

MyBatis逆向工程——MyBatis Generator (MBG)-简单介绍与运行步骤