代码生成器
MP提供了大量的自定义设置
MP代码生成器和MyBatis MBG代码生成器:
MP的代码生成器都是基于JAVA代码来生成的。MBG则是基于xml来生成的。
MBG可生成:实体类、mapper接口、mapper映射文件
MP可生成:实体类(可以选择是否支持AR)、Mapper接口、Mapper映射文件
service层、controller层
导入依赖
<!--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>
编写代码生成器类
package com.blh.mp.test;
import com.baomidou.mybatisplus.entity.GlobalConfiguration;
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;
public class TestMP {
public void testGenerator(){
//1、全局配置
GlobalConfig config = new GlobalConfig();
config.setActiveRecord(true) //是否支持AR模式
.setAuthor("卜帅气") //设置作者
.setOutputDir("F:\\IDEA Project\\mp03\\src\\main\\java") //生成路径
.setFileOverride(true) //文件覆盖
.setIdType(IdType.AUTO) //主键策略
.setServiceName("&sService") //设置生成的service接口的名字的首字母是否为I IEmployeeService 这样设置就没有前面的I了
.setBaseResultMap(true) //生成resultMap
.setBaseColumnList(true); //在xml中生成基础列
//2、数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL) //设置数据库的类型
.setDriverName("com.mysql.jdbc.Driver")
.setUrl("jdbc:mysql://localhost:3306/mp")
.setUsername("root")
.setPassword("123456");
//3、策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true) //设置全局大写命名
.setDbColumnUnderline(true) //指定表名 字段名是否使用下划线
.setNaming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略
.setTablePrefix("tbl_") //设置表名的前缀
.setInclude("tbl_employee"); //生成的表
//4、包名策略配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.blh.mp")
.setMapper("mapper")
.setController("controller")
.setService("service")
.setEntity("beans")
.setXml("mapper");
//5、整合配置
AutoGenerator ag = new AutoGenerator();
ag.setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig);
//6、执行
ag.execute();
}
}
生成的Mapper接口
生成的Mapper接口继承了BaseMapper