逆向工程
2018-05-28 本文已影响53人
幻影翔
意义
mybatis官方为了提高开发效率,提高自动对单表生成sql,包括 :mapper.xml、mapper.java、表名.java(po类)。
方向: 由数据库表----> java代码
利用配置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>
<context id="Tables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql:///test?useUnicode=true&characterEncoding=utf8"
userId="root"
password="a">
</jdbcConnection>
<!-- 类型转换 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
常用的位置放在src下
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="pojo"
targetProject="./mybatis/src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetPackage:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="./mybatis/src">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- 生成DAO的包名和位置,这里配置将生成的dao类放在src/dao这个包下 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="dao"
targetProject="./mybatis/src">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定表 -->
<!--用户表-->
<table schema="" tableName="user" />
其他表
</context>
</generatorConfiguration>
注意
- 常新建工程去生成映射文件和pojo类,要用的再拷到你的工程下
java程序实现
public void generator() throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overview = true;
//指定逆向工程的配置文件
File configFile = new File("/Users/jack/IdeaProjects/MyBatis0526/mybatis/src/generatorConfig-base.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overview);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback,warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
}