一、Mybatis Generator简述
学习完Mybatis框架之后,我们需要自行创建编写SQL语句。其实Mybatis官方提供逆向工程(Mybatis Generator)工具,可以针对单表(注意!!)自动生成Mybatis所需要的model(pojo)、mapper.java、mapper.xml。
因为Mybatis逆向工程生成的所有代码都是针对单表进行操作的,听起来感觉毫无作用,其实在开发中也会使用到逆向工程,大型项目中很少有复杂的关联查询并且简单的关联查询能够实现,这样的话,逆向工程能够大大提升效率。
二、Mybatis Generator使用(From another Java program with an XML configuration)
(1)准备工作
下载 mybatis-generator-core-1.3.2
官网地址:http://mybatis.org/generator/
文章末尾源码会附带此包
(2)编写程序
①创建Java Project
②创建lib目录并导入数据库链接包和" mybatis-generator-core-1.3.2"解压文件lib目录下的mybatis-generator-core-1.3.2.jar
③选择两个文件,单击右键选择Build Path - Add to Build Path
④在src目录下创建Generator类:
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 Generator {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
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);
}
}
⑤在项目目录下创建generatorConfig.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="DB2Tables" targetRuntime="MyBatis3">
<!-- 数据库配置(Mysql 8为例) -->
<!-- 请以自己的数据库成功配置项为准 -->
<!-- work是数据库名称 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/work?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=TRUE"
userId="root"
password="123456">
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- Model(Pojo)地址 -->
<javaModelGenerator targetPackage="com.model" targetProject=".\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- mapper.xml地址 -->
<sqlMapGenerator targetPackage="com.mapper" targetProject=".\src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- mapper.java地址 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.mapper" targetProject=".\src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--tableName 表名 -->
<!--domainObjectName实体类名称 -->
<table tableName="user" domainObjectName="User" ></table>
<table tableName="job" domainObjectName="Job" ></table>
<!-- 多个表直接在此添加即可 -->
</context>
</generatorConfiguration>
此时的文件目录:
⑥运行Generator.java并刷新项目即可得到Pojo、mapper.java和mapper.xml
三、总结
①学习使用逆向工程请先熟悉Mybatis框架整体的手动搭建,莫要直接依赖逆向工程。
②因为逆向工程是根据数据库文件逆向生成以上代码,后期数据库需求变动的话,修改较为麻烦,所以前期设计数据库尤为重要。
③虽然只有对单表的操作,但是可以实现多表联查,详情可以查阅其他博客。
④文章仅仅介绍一种较为简单的使用方法,官方文档中提供五种方法的教程,其他四种方法可自行查阅。