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();
    }

}

最后執行代碼即可

生成結果如下所示
image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM