SpringBoot中使用Mybatis Generator進行資料庫表逆向工程自動生成實體類和mapping對映
阿新 • • 發佈:2018-11-02
1.首先在專案中建立一個GeneratorDisplay
工具類,放在com.springbootdemo.util
下
package com.springbootdemo.util;
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 GeneratorDisplay {
public void generator() throws Exception {
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);
}
public static void main(String[] args) throws Exception {
try {
GeneratorDisplay generatorSqlmap = new GeneratorDisplay();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
2.在專案中建立一個MyMapper
頂級介面,將來所有自動生成的Mapper
介面都會去繼承該介面,放在com.springbootdemo.util
下,需要特別強調的是,這個介面千萬不要被Spring掃描到
package com.springbootdemo.util;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
public interface MyMapper extends Mapper, MySqlMapper {
//特別注意,該介面不能被掃描到,否則會出錯
}
3.需要說明的是,逆向工程的關鍵就是generatorConfig.xml
這個配置檔案,放在專案的根目錄下(與src平級)
<?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="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="com.springbootdemo.util.MyMapper"/>
</plugin>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/springbootdemo"
userId="admin"
password="admin">
</jdbcConnection>
<!-- 對於生成的pojo所在包 -->
<javaModelGenerator targetPackage="com.springbootdemo.pojo" targetProject="src/main/java"/>
<!-- 對於生成的mapper所在目錄 -->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
<!-- 配置mapper對應的java對映 -->
<javaClientGenerator targetPackage="com.springbootdemo.mapper" targetProject="src/main/java"
type="XMLMAPPER"/>
<!-- 對映幾張表就寫幾個table標籤 -->
<table tableName="user"></table>
</context>
</generatorConfiguration>
這裡需要改動的幾個地方是:
①<plugin>
標籤下的<property>
應指向MyMapper
介面;
②<jdbcConnection>
標籤需要配置資料庫連線引數;
③<javaModelGenerator>
標籤下<targetPackage>
指向自動生成的pojo
類所在的包;
④<sqlMapGenerator>
標籤下<targetPackage>
指向自動生成的mapper.xml
所在的靜態資原始檔夾路徑;
⑤<javaClientGenerator>
標籤下<targetPackage>
指向自動生成的mapper
介面,該介面將自動繼承MyMapper
介面。
4.以上全部配置完成後,執行GeneratorDisplay
工具類裡的main
方法即可,逆向工具會自動幫我們生成pojo
類、對應mapper.xml
配置檔案和mapper
介面
PS:感興趣的同學,可以去我的GitHub下載相關原始碼閱讀https://github.com/JochenGan