什麼是逆向工程?
簡單來說,Mybatis逆向工程可以根據數據庫的表來逆向生成相關java代碼和sql語句,如mapper.java,mapper.xml。雖然mapper接口及其配置文件我們完全可以自己寫,不過當表數量很多,關聯複雜時,用MyBatis Generator逆向工程就十分方便了。當然了,我們也可以根據業務邏輯修改其生成的mapper。
導入jar包
將mybatis-generator-core相關jar包導入項目,在maven倉庫中搜索mybatis generator,複製代碼到pom.xml。
不瞭解Maven的小夥伴,可以點這裏。
或者直接下載並導入jar包,github下載地址。
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
配置文件
新建配置文件mbg.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>
<!--這裏用的是MyBatis3Simple即簡單的增刪改查-->
<!--一般使用MyBatis3-->
<context id="DB2Tables" targetRuntime="MyBatis3Simple">
<!-- 逆向生成清除註釋 -->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 數據庫連接配置 -->
<jdbcConnection
driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/experiment9?serverTimezone=UTC"
userId="root"
password="數據庫密碼">
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 指定javaBean逆生成位置 -->
<javaModelGenerator
targetPackage="cn.csdn.bean"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 指定sql映射文件生成的位置 -->
<sqlMapGenerator
targetPackage="mapper"
targetProject=".\src\main\resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 指定dao接口生成的位置,mapper接口 -->
<javaClientGenerator
type="XMLMAPPER"
targetPackage="cn.csdn.dao"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 指定每個表的生成策略 -->
<table tableName="message" domainObjectName="Message"></table>
<table tableName="product" domainObjectName="Product"></table>
<table tableName="revert" domainObjectName="Revert"></table>
<table tableName="user" domainObjectName="User"></table>
</context>
</generatorConfiguration>
生成代碼
配置完後,官網上逆向生成的方法有很多,如命令行,eclipse插件等,這裏介紹用java代碼調用。
新建MBGTest.java
package cn.csdn.test;
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 MBGTest {
public static void main(String[] args) throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("mbg.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);
System.out.println("finish");
}
}
Run As->Java Application
最後控制檯打印finish,刷新目錄,就有生成的文件了。
你的點贊將會是我最大的動力