逆向工程----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的主要内容,如果未能解决你的问题,请参考以下文章
13.3.2 完整的MBG配置文件(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》
13.3.2 完整的MBG配置文件(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》
13.3.3 MBG其他配置(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》