您的位置:首页 > 其它

Mybatis的逆向工程简单的使用

2016-11-19 00:00 435 查看
摘要: Mybatis的逆向工程简单的使用

参考资料:

官方文档:http://www.mybatis.org/generator/index.html

使用方法:

1.下载使用mybatis逆向工程所需的jar包

①自己百度下载mybatis-generator-core,版本为1.3.5。

②如果使用Maven工程的话可以加入以下依赖:

<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>


2.逆向工程的配置文件如下:

<?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>

<!--指定数据库驱动URL-->
<classPathEntry
location = "D:\WORKSPACE\intelljIdea\StudyPlatform\target\Study\WEB-INF\lib\mysql-connector-java-5.0.8.jar" />

<!--context 里的id用于唯一标识该Context,在生成错误信息时可能会使用到,
targetRuntime表示当前使用的Mybatis版本,3.x的版本就是MyBatis3
-->
<context id = "MysqlTables" targetRuntime = "MyBatis3">

<commentGenerator>
<!--指定自动生成的文件是否忽略写入注释,true不写注释,false写注释-->
<property name = "suppressAllComments" value = "false" />
<!--指定自动生成的文件是否忽略写入生成日期,true不写,false写-->
<property name = "suppressDate" value = "false" />
<!--
指定自动生成的JavaBean若数据库字段带有注释,
是否将对应注释写入到JavaBean的属性上,true不写,false不写,
若suppressAllComments设定为true,则此项设置无效
-->
<property name = "addRemarkComments" value = "true" />
<!--
指定日期注释的格式,若suppressAllComments或者suppressDate
设定为true,则此项设置无效
-->
<property name = "dateFormat" value = "yyyy-MM-dd" />
</commentGenerator>

<!--连接数据库的信息-->
<jdbcConnection driverClass = "com.mysql.jdbc.Driver"
connectionURL = "jdbc:mysql://localhost:3306/ssm"
userId = "root"
password = "12345">
</jdbcConnection>

<!--为true时,数据库里的 DECIMAL 或者 NUMERIC类型将被映射成Java里的
java.math.BigDecimal类型,如果为false,将按照一定规则进行映射
-->
<javaTypeResolver>
<property name = "forceBigDecimals" value = "false" />
</javaTypeResolver>

<!--指定生成的PO类放在哪个路径下-->
<javaModelGenerator targetPackage = "at.flying.domain"
targetProject = "D:\WORKSPACE\intelljIdea\StudyPlatform\src\main\java">
<!--是否让schema作为包的后缀-->
<property name = "enableSubPackages" value = "false" />
<!--是否清理从数据库返回的值得前后空格,如果数据库里的值是字符串的话比较有用-->
<property name = "trimStrings" value = "true" />
</javaModelGenerator>

<!--指定生成的映射文件放在哪个路径下-->
<sqlMapGenerator targetPackage = "at.flying.mapper.xml"
targetProject = "D:\WORKSPACE\intelljIdea\StudyPlatform\src\main\resources">
<!--是否让schema作为包的后缀-->
<property name = "enableSubPackages" value = "false" />
</sqlMapGenerator>

<!--指定生成的Mapper接口放在哪个路径下-->
<javaClientGenerator type = "XMLMAPPER" targetPackage = "at.flying.interfaces"
targetProject = "D:\WORKSPACE\intelljIdea\StudyPlatform\src\main\java">
<!--是否让schema作为包的后缀-->
<property name = "enableSubPackages" value = "false" />
</javaClientGenerator>

<!--指定需要被Mybatis逆向工程生成java代码的表-->
<table schema = "ssm" tableName = "user" domainObjectName = "User">
<!--这个值为true时将会把表中的column名作为User属性的名字,
如果为false,将会按照驼峰命名法自动为User的属性指定名字
-->
<property name = "useActualColumnNames" value = "false" />
<!--指定column在数据库的类型,在进行jdbcType到javaType映射时以这里设置的为准-->
<columnOverride column = "uname" jdbcType = "VARCHAR" />
</table>

<table tableName = "talker" />

<table schema = "ssm" tableName = "talk_msg" domainObjectName = "talkMsg">
<!--为该column指定User中的属性名-->
<columnOverride column = "t_from" property = "from" />
<columnOverride column = "t_to" property = "to" />
<columnOverride column = "t_date" property = "date" />
</table>
</context>
</generatorConfiguration>


3.使用Java程序启动Mybatis逆向工程:

package at.flying;

import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class TestMybatis {
@Test
public void test1() {
try {
/*逆向工程执行过程中产生的警告信息*/
List<String> warnings = new ArrayList<String>();
/*指定如果在指定路径下有与逆向工程生成的同名文件是否覆盖原有的同名文件*/
boolean overwrite = true;
/*逆向工程配置文件的路径*/
File configFile =
new File("D:\\WORKSPACE\\intelljIdea\\StudyPlatform\\src\\main\\resources\\mybatis_generator.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);
/*打印出警告信息*/
for (String warining : warnings) {
System.out.println(warining);

}
} catch (Exception e) {
e.printStackTrace();
}

}
}


4.执行Java程序,生成的的文件如下:





注:

Mybatis逆向工程只能生成一些简单的操作表的语句,所以该逆向工程只针对单表操作,而表之间的关系无法映射出来,像关联表的查询等较复杂的SQL语句还是需要程序员自己写的。

关于Mybatis的逆向工程“配置文件”更加详细的内容请参考官方文档:http://www.mybatis.org/generator/configreference/xmlconfig.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Mybatis逆向工程