1. 程式人生 > >SpringBoot中使用Mybatis Generator進行資料庫表逆向工程自動生成實體類和mapping對映

SpringBoot中使用Mybatis Generator進行資料庫表逆向工程自動生成實體類和mapping對映

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