Mybatis官方提供逆向工程 Mybatis generator
Posted 全栈CV
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis官方提供逆向工程 Mybatis generator相关的知识,希望对你有一定的参考价值。
Mybaits generator
Mybaits generator是Mybatis官方提供逆向工程,可以针对单表自动生成Mybatis执行所需要的代码,如mapper.java、mapper.xml、pojo。
先给出官方wiki链接:http://www.mybatis.org/generator/
这是说一种使用方法
1、下载所需要的jar包
2、配置xml文件
这里贴一个例子以供参考
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/databases" userId="root" password="1234">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.test.pojo" targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.test.mapper" targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.test.mapper" targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="table1"></table>
<table schema="" tableName="table2"></table>
</context></generatorConfiguration>
看注释,将上面xml文件中的一些属性改成你自己的即可。
3、写个工具类试一下
配置好了xml,写个测试类试一下
import java.io.File;import java.util.ArrayList;import java.util.List;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;public class GeneratorSqlmap {public void generator() throws Exception{
List<String> warnings = new ArrayList<String>(); boolean overwrite = true; //指定 逆向工程配置文件
File configFile = new File("generatorConfig.xml");
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);
}
public static void main(String[] args) throws Exception { try {
GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
执行main方法,如果xml中的属性无误的话,就会在你指定的位置生成以所需要的类和映射文件。
小技巧:
1、有时候路径会是个头疼的问题,我们可以用一个单独的java项目来使用逆向工程,然后再把生成的类和映射文件拷贝到相应的位置即可。 2、可以封装一个jar包,每次只要修改xml文件,然后使用jar命令执行jar包即可。
java -jar xxxx.jar
以上是关于Mybatis官方提供逆向工程 Mybatis generator的主要内容,如果未能解决你的问题,请参考以下文章