mybatis-plus代码生成
package com.cd.selftestcode;
import com.baomidou.mybatisplus.annotation.DbType;
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.NamingStrategy;
class SelfTestCodeApplicationTests {
// DriverName("");
public static final String DRIVAER_NAME = "";
// tUsername("root");
public static final String USER_NAME = "root";
// Password("mysql");
public static final String PSW = "mysql";
// Url
public static final String URL = "jdbc:mysql://192.168.0.108:13306/database";
//最*包名,生成的所有的*包名
public static final String PARENT_PACKAGE = "";
//controller包包
public static final String CONTROLLER_PACKAGE = "controller";
//service包名
public static final String SERVICE_PACKAGE = "service";
//包名
public static final String SERVICE_IMPL_PACKAGE = "";
//mapper包名
public static final String MAPPER_PACKAGE = "mapper";
//entity包名
public static final String ENTITY_PACKAGE = "po";
//xml包名
public static final String XML_PACKAGE = "xml";
//生成文件目录
public static final String OUT_FILE_PATH="D:\\tempProject\\src\\main\\java";
// 开启swagger2模式
public static final Boolean SWAGGER_ENABLE = true;
// 是否覆盖已有文件
public static final Boolean RECOVER_ENABLE = true;
//DTO名字格式
public static final String DTO_NAME_FORMAT = "%sDTO";
public static final String DTO_BASE = PARENT_PACKAGE + ".";
//PO名字格式
public static final String PO_NAME_FORMAT = "%sPO";
public static final String PO_BASE = PARENT_PACKAGE + ".";
//query名字格式
public static final String QUERY_NAME_FORMAT = "%sQuery";
public static final String QUERYO_BASE = PARENT_PACKAGE + ".BaseQuery";
//数据库中的表名
public static final String[] TABLE_NAMES = {"表名1","表名2"};
/**
* 生成DTO\PO\QUERY以及service\controller\mybatisplus\mapper\代码
*/
public static void main(String[] args) {
//生成DTO
generatorMybatisAndDTO();
//生成query
generatorMybatisAndQuery();
//生成po和mapper
generatorMybatisAndPO();
}
/**
* 数据源配置
*/
private static DataSourceConfig dataSource() {
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL); // mysql生成用
dsc.setDriverName(DRIVAER_NAME);
dsc.setUsername(USER_NAME);
dsc.setPassword(PSW);
dsc.setUrl(URL);
return dsc;
}
/**
* 包名配置
*/
private static PackageConfig packageConfig() {
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent(PARENT_PACKAGE); // 父包名
pc.setController(CONTROLLER_PACKAGE); // Controller包名
pc.setService(SERVICE_PACKAGE); // Service包名
pc.setServiceImpl(SERVICE_IMPL_PACKAGE); // Service Impl包名
pc.setMapper(MAPPER_PACKAGE); // Mapper包名
pc.setEntity(ENTITY_PACKAGE); // Entity包名
pc.setXml(XML_PACKAGE); // xml包名
return pc;
}
/**
* 全局配置
*/
private static GlobalConfig globalConfig() {
// 全局配置
GlobalConfig gc = new GlobalConfig();
gc.setSwagger2(SWAGGER_ENABLE); // 开启swagger2模式
gc.setOutputDir(OUT_FILE_PATH); // 生成文件存放的位置
gc.setFileOverride(RECOVER_ENABLE); // 是否覆盖已有文件
gc.setActiveRecord(false); // 开启ActiveRecord模式,默认false
gc.setEnableCache(false); // 是否在xml中添加二级缓存配置,默认false
gc.setBaseResultMap(true); // 开启BaseResultMap(通用查询映射结果)
gc.setBaseColumnList(true); // 开启baseColumnList(通用查询结果列)
gc.setAuthor("cd"); // 开发人员
// 自定义文件命名,注意 %s 会自动填充表实体属性(各层文件名称方式,例如:%sAction生成UserAction, %s为占位符)
gc.setControllerName("%sController");
gc.setServiceName("%sService");
gc.setServiceImplName("%sServiceImpl");
gc.setMapperName("%sMapper");
gc.setXmlName("%sMapper");
gc.setEntityName("%sPO");
return gc;
}
/**
* 策略配置
*/
private static StrategyConfig strategy() {
StrategyConfig strategy = new StrategyConfig();
strategy.setEntityBooleanColumnRemoveIsPrefix(true);//boolean类型去掉is开头
strategy.setLogicDeleteFieldName("delete_flag");
strategy.setTablePrefix(""); // 去掉表名前缀
strategy.setNaming(NamingStrategy.underline_to_camel); // 表名生成策略(underline_to_camel:下划线转驼峰命名)
strategy.setInclude(TABLE_NAMES); // 表名
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setSuperControllerClass(PARENT_PACKAGE + ".");// 自定义继承的Controller类全称,带包名
strategy.setSuperServiceClass(PARENT_PACKAGE+".");
strategy.setSuperEntityClass(PARENT_PACKAGE + ".");// 自定义继承的实体类全称,带包名
strategy.setEntityLombokModel(true); // 实体类是否为lombok模型(默认false)
strategy.setRestControllerStyle(true); // 生成 <code>@RestController</code> 控制器
strategy.setSuperMapperClass(""); // 自定义继承的Mapper类全称,带包名
strategy.setChainModel(true); //生成build代码
return strategy;
}
private static void generatorMybatisAndPO() {
// 生成器
AutoGenerator mpg = new AutoGenerator();
// 包配置
mpg.setPackageInfo(packageConfig().setEntity("po"));
// 全局配置
mpg.setGlobalConfig(globalConfig().setEntityName(PO_NAME_FORMAT));
// 数据源配置
mpg.setDataSource(dataSource());
// 策略配置
mpg.setStrategy(strategy().setSuperEntityClass(PO_BASE));
// 执行生成
mpg.execute();
}
private static void generatorMybatisAndQuery() {
// 生成器
AutoGenerator mpg = new AutoGenerator();
// 包配置
mpg.setPackageInfo(packageConfig().setEntity("query"));
// 全局配置
mpg.setGlobalConfig(globalConfig().setEntityName(QUERY_NAME_FORMAT));
// 数据源配置
mpg.setDataSource(dataSource());
// 策略配置
mpg.setStrategy(strategy().setSuperEntityClass(QUERYO_BASE).setChainModel(true).setEntityLombokModel(false).setLogicDeleteFieldName(null));
// 执行生成
mpg.execute();
}
private static void generatorMybatisAndDTO() {
// 生成器
AutoGenerator mpg = new AutoGenerator();
// 包配置
mpg.setPackageInfo(packageConfig().setEntity("dto"));
// 全局配置
mpg.setGlobalConfig(globalConfig().setEntityName(DTO_NAME_FORMAT));
// 数据源配置
mpg.setDataSource(dataSource());
// 策略配置 实体基类 建造者模式 lombok是否启用 逻辑删除字段
mpg.setStrategy(strategy().setSuperEntityClass(DTO_BASE).setChainModel(true).setEntityLombokModel(false).setLogicDeleteFieldName(null));
// 执行生成
mpg.execute();
}
}