1. 程式人生 > 其它 >MyBatisPlus的程式碼生成器模板(IDEA+MAVEN)

MyBatisPlus的程式碼生成器模板(IDEA+MAVEN)

與MBG的區別

MyBatis 的程式碼生成器可生成: 實體類、Mapper 介面、Mapper 對映檔案

MP 的程式碼生成器可生成: 實體類(可以選擇是否支援 AR)、Mapper 介面、Mapper 對映檔案、 Service 層、Controller 層.

相比MBG,MP只需要進行純Java程式碼的編寫即可生成程式碼

MP生成器步驟

注:此處使用的是2.3版本的mybatis-plus,MySQL使用的是8.0.20版本

匯入依賴

<dependency>
	<groupId>com.baomidou</groupId>
	<artifactId>mybatis-plus</artifactId>
	<version>2.3</version>
</dependency>
<!--junit-->
<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.13</version>
</dependency>
<!--mysql-->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>8.0.20</version>
</dependency>
<!--log4j-->
<dependency>
	<groupId>log4j</groupId>
	<artifactId>log4j</artifactId>
	<version>1.2.17</version>
</dependency>
<!--c3p0-->
<dependency>
	<groupId>com.mchange</groupId>
	<artifactId>c3p0</artifactId>
	<version>0.9.5.4</version>
</dependency>
<!--spring-->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-orm</artifactId>
	<version>5.3.9</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context</artifactId>
	<version>5.3.9</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-webmvc</artifactId>
	<version>5.3.9</version>
</dependency>

<!--Apache velocity
MP 的程式碼生成器預設使用的是 Apache 的 Velocity 模板
-->
<dependency>
	<groupId>org.apache.velocity</groupId>
	<artifactId>velocity-engine-core</artifactId>
	<version>2.0</version>
</dependency>

<!--slf4j
檢視日誌輸出資訊
-->
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>1.7.7</version>
</dependency>
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-log4j12</artifactId>
	<version>1.7.7</version>
</dependency>

Java測試程式碼模板

import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;

public class TestMP {

    /**
     * 程式碼生成 示例程式碼
     */
    @Test
    public void testGenerator(){
        //1.全域性配置
        GlobalConfig config = new GlobalConfig();
        config.setActiveRecord(true) //是否支援AR模式
            .setAuthor("blank")     //作者
            .setOutputDir("專案根路徑\\src\\main\\java")     //生成路徑
            .setFileOverride(true)      //檔案覆蓋
            .setIdType(IdType.AUTO)     //主鍵策略
            .setServiceName("%sService")     //設定生成的service介面的名字的首字母是否為I(IEmployeeService),此處為不設定首字母為I
            .setBaseResultMap(true)         //SQL對映檔案中生成的
            .setBaseColumnList(true);

        //2.資料來源配置
        DataSourceConfig dsConfig = new DataSourceConfig();
        dsConfig.setDbType(DbType.MYSQL) //設定資料庫型別
                .setDriverName("com.mysql.cj.jdbc.Driver")
                .setUrl("jdbc:mysql://localhost:3306/資料庫名?serverTimezone=UTC")
                .setUsername("使用者名稱")
                .setPassword("密碼");

        //3.策略配置
        StrategyConfig stConfig = new StrategyConfig();
        stConfig.setCapitalMode(true)       //開啟全域性大寫命名
                .setDbColumnUnderline(true) //指定表明 欄位名是否使用下劃線
                .setNaming(NamingStrategy.underline_to_camel)   //資料庫表對映到實體的命名策略
                .setTablePrefix("tbl_")
                .setInclude("tbl_employee");    //生成的表

        //4.包名策略配置
        PackageConfig pkConfig = new PackageConfig();
        pkConfig.setParent("com.atguigu.mp")
                .setMapper("mapper")
                .setService("service")
                .setController("controller")
                .setEntity("beans")
                .setXml("mapper");

        //5.整合配置
        AutoGenerator ag = new AutoGenerator();
        ag.setGlobalConfig(config)
            .setDataSource(dsConfig)
            .setStrategy(stConfig)
            .setPackageInfo(pkConfig);

        //6.執行
        ag.execute();
    }

}

最後執行程式碼即可

生成結果如下所示