简单的说,MyBatis逆向工程就是给个数据库,就会自动生成操作数据库的一堆文件
MyBatis逆向工程
1、所需依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
2、创建配置文件generatorConfig.xml
1、jdbcConnection 配置数据库连接信息
2、javaModelGenerator 配置javaBean实体类的生成策略
3、sqlMapGenerator 配置SQL映射文件的生成策略
4、javaClient 配置Mapper接口的生成策略
5、table 配置目标数据表
(tableName:表名;domainObjectName:将来JavaBean实体类名)
<?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="testTables" targetRuntime="MyBatis3">
<!--1、jdbcConnection 配置数据库连接信息-->
<jdbcConnection
driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8"
userId="root"
password="root"
></jdbcConnection>
<!--2、javaModelGenerator 配置javaBean实体类的生成策略-->
<javaModelGenerator targetPackage="entity" targetProject="./src/main/java"></javaModelGenerator>
<!--3、sqlMapGenerator 配置SQL映射文件的生成策略-->
<sqlMapGenerator targetPackage="repository" targetProject="./src/main/java"></sqlMapGenerator>
<!--4、javaClient 配置Mapper接口的生成策略-->
<javaClientGenerator type="XMLMAPPER" targetPackage="repository" targetProject="./src/main/java"></javaClientGenerator>
<!--5、table 配置目标数据表
(tableName:表名;domainObjectName:将来JavaBean实体类名)-->
<table tableName="sheet" domainObjectName="User"></table>
</context>
</generatorConfiguration>
创建 Generator 启动类
public class Main {
public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException {
List<String> warings = new ArrayList<String>();
boolean overwrite = true;//重写
String genCig = "/generatorConfig.xml"; //对于配置文件来说,resource文件即为根目录
//运用面向对象的思想,用“configFile”来代替“generatorConfig.xml”
File configFile = new File(Main.class.getResource(genCig).getFile());
ConfigurationParser configurationParser = new ConfigurationParser(warings);//这个构造函数需要传一个集合进来
Configuration configuration = null;
configuration = configurationParser.parseConfiguration(configFile);//通过配置文件创建的一个对象
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = null;
myBatisGenerator = new MyBatisGenerator(configuration,callback,warings) ;
myBatisGenerator.generate(null);
}
}
之后就点击运行,实体类及其配置文件都会自动生成。