一、逆向工程
1、简介
可以根据 数据库中的表 ,生成对应的 POJO、sql映射文件等。简化了一些操作。当然复杂的操作需要自己手动编写。
官方文档:http://mybatis.org/generator/
2、使用
step1:前提条件。
数据库:mysql。
表:emp,dept。
1【表emp】 2CREATE TABLE emp( 3 id int primary key auto_increment, 4 name varchar(50), 5 salary double, 6 age int, 7 d_id int 8); 9 10【表dept】 11CREATE TABLE dept( 12 id int primary key auto_increment, 13 name varchar(50) 14); 15 16【dept的主键 是emp 的外键】 17ALTER TABLE emp ADD CONSTRAINT fk_emp_dept FOREIGN KEY(d_id) REFERENCES dept(id);

step2:导入包(mybatis-generator-core 以及 mysql-connector-java-8.0.18.jar)。
1【地址:】 2https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core 3https://mvnrepository.com/artifact/mysql/mysql-connector-java 4 5【使用 maven 的依赖信息如下:】 6 7<!-- 逆向工程所需的依赖信息 --> 8<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> 9<dependency> 10 <groupId>org.mybatis.generator</groupId> 11 <artifactId>mybatis-generator-core</artifactId> 12 <version>1.3.5</version> 13</dependency> 14 15 16<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> 17<dependency> 18 <groupId>mysql</groupId> 19 <artifactId>mysql-connector-java</artifactId> 20 <version>8.0.18</version> 21</dependency>
step3:编写配置文件
1【mybatis-generator.xml】 2 3<?xml version="1.0" encoding="UTF-8"?> 4<!DOCTYPE generatorConfiguration 5 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 6 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 7 8<generatorConfiguration> 9 <context id="DB2Tables" targetRuntime="MyBatis3"> 10 <!-- step1: 配置数据库连接信息 --> 11 <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" 12 connectionURL="jdbc:mysql://localhost:3306/lyh" 13 userId="root" 14 password="123456"> 15 </jdbcConnection> 16 17 <javaTypeResolver> 18 <property name="forceBigDecimals" value="false"/> 19 </javaTypeResolver> 20 21 <!-- step2: 指定java bean生成的位置 22 targetProject 指的是 哪个项目 23 targetPackage 指的是 项目中的路径 24 --> 25 <javaModelGenerator targetPackage="com.lyh.bean" targetProject=".\src"> 26 <property name="enableSubPackages" value="true"/> 27 <property name="trimStrings" value="true"/> 28 </javaModelGenerator> 29 30 <!-- step3:指定sql映射文件生成的位置 --> 31 <sqlMapGenerator targetPackage="com.lyh.mapper" targetProject=".\src"> 32 <property name="enableSubPackages" value="true"/> 33 </sqlMapGenerator> 34 35 <!-- step4: 指定接口生成的位置 --> 36 <javaClientGenerator type="XMLMAPPER" targetPackage="com.lyh.dao" targetProject=".\src"> 37 <property name="enableSubPackages" value="true"/> 38 </javaClientGenerator> 39 40 <!-- step5: 指定表的生成策略 41 tableName 指定表名 42 domainObjectName 指定表对应的 实体类的名字 43 --> 44 <table tableName="emp" domainObjectName="Employee"></table> 45 <table tableName="dept" domainObjectName="Department"></table> 46 </context> 47</generatorConfiguration>
step4:编写运行类
1【com.lyh.test.TestMybatisGenerator】 2package com.lyh.test; 3 4import org.mybatis.generator.api.MyBatisGenerator; 5import org.mybatis.generator.config.Configuration; 6import org.mybatis.generator.config.xml.ConfigurationParser; 7import org.mybatis.generator.exception.InvalidConfigurationException; 8import org.mybatis.generator.exception.XMLParserException; 9import org.mybatis.generator.internal.DefaultShellCallback; 10 11import java.io.File; 12import java.io.IOException; 13import java.sql.SQLException; 14import java.util.ArrayList; 15import java.util.List; 16 17public class TestMybatisGenerator { 18 public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException { 19 List<String> warnings = new ArrayList<String>(); 20 boolean overwrite = true; 21 File configFile = new File("src//mybatis-generator.xml"); 22 System.out.println(configFile); 23 ConfigurationParser cp = new ConfigurationParser(warnings); 24 Configuration config = cp.parseConfiguration(configFile); 25 DefaultShellCallback callback = new DefaultShellCallback(overwrite); 26 MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); 27 myBatisGenerator.generate(null); 28 } 29}
step5:运行类的截图
初始截图:

运行后截图:(带注释)

step6: 去除注释
1【上面截图中都带有注释信息,若想去除,需添加如下配置信息】 2<!-- 清除注释信息 --> 3<commentGenerator> 4 <property name="suppressAllComments" value="true" /> 5</commentGenerator> 6 7 8【mybatis-generator.xml】 9<?xml version="1.0" encoding="UTF-8"?> 10<!DOCTYPE generatorConfiguration 11 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 12 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 13 14<generatorConfiguration> 15 <context id="DB2Tables" targetRuntime="MyBatis3"> 16 <!-- 清除注释信息 --> 17 <commentGenerator> 18 <property name="suppressAllComments" value="true" /> 19 </commentGenerator> 20 21 <!-- step1: 配置数据库连接信息 --> 22 <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" 23 connectionURL="jdbc:mysql://localhost:3306/lyh" 24 userId="root" 25 password="123456"> 26 </jdbcConnection> 27 28 <javaTypeResolver> 29 <property name="forceBigDecimals" value="false"/> 30 </javaTypeResolver> 31 32 <!-- step2: 指定java bean生成的位置 33 targetProject 指的是 哪个项目 34 targetPackage 指的是 项目中的路径 35 --> 36 <javaModelGenerator targetPackage="com.lyh.bean" targetProject=".\src"> 37 <property name="enableSubPackages" value="true"/> 38 <property name="trimStrings" value="true"/> 39 </javaModelGenerator> 40 41 <!-- step3:指定sql映射文件生成的位置 --> 42 <sqlMapGenerator targetPackage="com.lyh.mapper" targetProject=".\src"> 43 <property name="enableSubPackages" value="true"/> 44 </sqlMapGenerator> 45 46 <!-- step4: 指定接口生成的位置 --> 47 <javaClientGenerator type="XMLMAPPER" targetPackage="com.lyh.dao" targetProject=".\src"> 48 <property name="enableSubPackages" value="true"/> 49 </javaClientGenerator> 50 51 <!-- step5: 指定表的生成策略 52 tableName 指定表名 53 domainObjectName 指定表对应的 实体类的名字 54 --> 55 <table tableName="emp" domainObjectName="Employee"></table> 56 <table tableName="dept" domainObjectName="Department"></table> 57 </context> 58</generatorConfiguration>
