MyBatis 逆向工程是 MyBatis 提供的一个自动生成 MyBatis 映射文件的工具,可以通过逆向工程生成对应的实体类、Mapper 接口和映射文件。
mybatis逆向工程的官网:MyBatis Generator Core – Introduction to MyBatis Generator
创建逆向工程的过程
两种方式实现:
-
使用代码实现
-
使用插件方式实现
一、使用代码实现
1、创建db.properties配置文件,用于连接数据库的外部数据
datasource.username=root
datasource.password=123456
datasource.driver=com.mysql.cj.jdbc.Driver
datasource.url=jdbc:mysql://localhost:3306/mybatis
2、创建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>
<properties resource="db.properties"></properties>
<context id="mysql" targetRuntime="MyBatis3Simple">
<!--插件-->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>
<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"></plugin>
<!--覆盖原来的映射文件中的内容-->
<plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"></plugin>
<!--取消默认的注释-->
<commentGenerator>
<!--阻止生成注释-->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--连接数据库-->
<jdbcConnection driverClass="${datasource.driver}"
connectionURL="${datasource.url}"
userId="${datasource.username}"
password="${datasource.password}"></jdbcConnection>
<!--表字段类型和实体类中属性类型转换-->
<javaTypeResolver>
<property name="forceBigDecimals" value="true"/>
</javaTypeResolver>
<!--生成实体类-->
<javaModelGenerator targetPackage="com.example.model"
targetProject="src/main/java">
</javaModelGenerator>
<!--生成映射文件-->
<sqlMapGenerator targetPackage="com.example.mapper"
targetProject="src/main/resources">
</sqlMapGenerator>
<!--生成接口-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.example.mapper"
targetProject="src/main/java">
</javaClientGenerator>
<!--生成数据库表-->
<table tableName="person" domainObjectName="Person"></table>
</context>
</generatorConfiguration>
3、在官网中复制代码并运行,从而通过逆向工程生成代码
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);
</context>
</generatorConfiguration>
二、使用插件方式实现
1、在项目中的pom.xml中加入插件
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
</configuration>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.1.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build></build>