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

}

最后执行代码即可

生成结果如下所示
MyBatisPlus的代码生成器模板(IDEA+MAVEN)

MyBatisPlus的代码生成器模板(IDEA+MAVEN)

上一篇:一个简单的webserver


下一篇:ASP.NET MVC4学习笔记之Controller激活的扩展