原文始发于:10. Mybatis 逆向工程-MBG
Mybatis Generator 简称MBG, 是Mybatis 专门用于自动化生产Mapper 接口类, PO 类, sql 映射文件的工具. MBG 是Mybatis 官方提供的一个子项目, 但是笔者并不觉得有多好用, 笔者更倾向于自己开发Mybatis 自动化生产代码工具. 因为没有任何一款开源的工具, 能完全适应你的项目编码规范. 因此, 笔者在这里只简单地介绍一下MBG 的环境搭建. MBG 有很多配置项, 请参考官方文档.
1. MBG 环境搭建
- 官方地址: https://github.com/mybatis/generator
- 官方文档: http://www.mybatis.org/generator/configreference/table.html
1.1 添加依赖
在现有环境下, 直接添加mybatis-generator-core 依赖即可
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> <scope>test</scope> </dependency>
1.2 创建配置文件
- 配置文件mbg.xml 放于pom.xml 同级目录
- jdbc.properties 配置文件使用项目中的jdbc.properties文件, 位于src/main/resources目录下
<?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" /> <!-- 数据库连接配置 --> <context id="DB2Tables" targetRuntime="MyBatis3"> <jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"> </jdbcConnection> <!-- 是否强制转换BigDecimals 类型 --> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- po 类生成设定 --> <javaModelGenerator targetPackage="org.zongf.learn.mybatis.mbg.po" targetProject="./src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- sql 映射文件生成设定 --> <sqlMapGenerator targetPackage="mappers" targetProject="./src/main/resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- mapper 接口文件生成设定--> <javaClientGenerator type="XMLMAPPER" targetPackage="org.zongf.learn.mybatis.mbg.mappers" targetProject="./src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 需要生产的表 --> <table tableName="t_employee" domainObjectName="Employee" /> </context> </generatorConfiguration>
2. 生产
MBG 的运行方式有很多, 支持ANT, Maven , 命令行等, 笔者就用最简单的java 代码方式测试一下.
public class TestMbg { @Test public void test() throws Exception{ // 配置文件路径, 笔者配置文件与pom.xml 位于同一目录 String mbgConfigFile = "mbg.xml"; List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File(mbgConfigFile); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } }