mybatis-plus 代码生成器
作者:王彦涛
- 2023-12-03 北京
本文字数:1856 字
阅读完需:约 6 分钟
最近公司新做的项目,用代码生成器生成基础代码很方便,本文对常用的配置整理成了一个模版,项目直接用即可
package com.ele.data;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class MysqlGenerator {
private static final String CLASS_PATH = Objects.requireNonNull(MysqlGenerator.class.getClassLoader().getResource("")).getPath();
private static final String PACKAGE_NAME = "com.ele.data";
private static final String OUT_PATH = System.getProperty("user.dir")+"/src/main/java";
private static final String MAPPER_OUT_PATH = System.getProperty("user.dir")+"/src/main/resources/mapper";
private static final String SERVICE_OUT_PATH = System.getProperty("user.dir")+"/src/main/java/com/ele/data/service";
private static final String AUTHOR = "wyt";
private static final String LOGIC_DELETE_COLUM_NNAME = "is_deleted";
private static final String TEMPLATE_SERVICE = "template/service.java";
private static final String[] TABLE_NAMES = new String[] {"ele_device"};
private static final Map<OutputFile, String> PATH_INFO = new HashMap<OutputFile, String>(){
private static final long serialVersionUID = 9147103437213976568L;
{
put(OutputFile.mapperXml, MAPPER_OUT_PATH);
put(OutputFile.service, SERVICE_OUT_PATH);
}
};
//数据库url
private static final String URL = "";
//用户名
private static final String USER_NAME = "";
//密码
private static final String PASSWORD = "igA!BiAr@Q3)1iv$24X";
/**
* <p>
* MySQL 生成演示
* </p>
*/
@Test
public void gen() {
// log.info(TEMPLATE_SERVICE.substring(1, TEMPLATE_SERVICE.length()));
FastAutoGenerator.create(URL, USER_NAME, PASSWORD)
.globalConfig(builder -> {
builder.author(AUTHOR) // 设置作者
// .enableSwagger() // 开启 swagger 模式
.disableOpenDir() //不打开文件
.fileOverride() // 覆盖已生成文件
.outputDir(OUT_PATH); // 指定输出目录
})
// .templateConfig(builder ->{
// builder.service(TEMPLATE_SERVICE)
// .build();
// })
.packageConfig(builder -> {
builder.parent(PACKAGE_NAME) // 设置父包名
// .moduleName(MODULE_NAME) // 设置父包模块名
.entity("entity")
.mapper("mapper")
.service("service")
.serviceImpl("service.impl")
.controller("controller")
.pathInfo(PATH_INFO); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude(TABLE_NAMES) // 设置需要生成的表名
.addTablePrefix("t_", "c_") // 设置过滤表前缀
.mapperBuilder()
.enableBaseResultMap() //是否生成BaseResultMap 映射map
.enableBaseColumnList() // 是否生成BaseColumnList 所有字段
.build()
.entityBuilder()
.enableActiveRecord() // ar模式
.enableChainModel() // 链式调用
.enableLombok() // lombok
.enableTableFieldAnnotation() // 字段注解
// .enableRemoveIsPrefix() // is前缀
.logicDeleteColumnName(LOGIC_DELETE_COLUM_NNAME)
.formatFileName("%s")
.build()
.serviceBuilder()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sImpl")
// .superServiceClass("")
.build();
})
// .templateConfig(builder -> {
// builder.controller("") //不生成controller
// .build();
// })
.execute();
}
}
复制代码
划线
评论
复制
发布于: 刚刚阅读数: 4
王彦涛
关注
终身学习、研究java架构、ai大模型 2019-12-06 加入
商业合作: wytwhdwdd
评论