本项目基于maven开发
逆向工程时,通过数据库中表生成bean实体,mapper.xml以及dao;需要注意的是表之间的关系无法映射出来!也就是说mybatis的逆向工程生成的都是单表操作
1.准备好genreatorConfig.xml文件,tablename是数据中已经建好的表
<?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>
<!--数据库驱动,最好不要有中文字符,不然会找不到 G:\\aaa/bbb/fff/test.zip -->
<classPathEntry location="C:\\Users/EB/.m2/repository/mysql/mysql-connector-java/5.1.39/mysql-connector-java-5.1.39.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/test" userId="root" password="123456">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="com.bi.portal.baidu.domain" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="com.bi.portal.baidu.domain" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成DaoMapper类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="combi.portal.baidu.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成对应表及类名,需要记住的一点是逆向工程无法生成关联关系,只能生成单表操作-->
<table tableName="agm_file_info"
domainObjectName="AgmFileInfo"
></table>
<table tableName="sys_resource"
domainObjectName="SysResource"
></table>
</context>
</generatorConfiguration>
2.下载jar包
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.6</version>
</dependency>
3.准备Java程序
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;
/**
* @author
* @createDate 2018年6月29日 下午3:32:27
*/
public class MybatisGen {
public static void generator() throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//项目根路径不要有中文,我的有中文,所以使用绝对路径
File configFile = new File("src/main/resources/genreatorConfig.xml");
System.out.println("===========");
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) {
try {
generator();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4.运行程序及生成代码
1.中代码部分解读:
table是设置需要生成的数据库表,tableName是数据库表名,domainObjectName是实体的名字;
javaModelGenerator是指定实体生成的位置;
sqlMapGenerator是指定mapper.xml文件的位置;
javaClientGenerator是指定dao的生成文件位置;