mybatis-plus代码生成器

一、java代码

public class GeneratorUtil {

public static void generatorCode(String projectPath, String url, String name, String password, List<String> tables, String parent, String addTablePrefix) {
//1、配置数据源
FastAutoGenerator.create("jdbc:mysql://" + url + "?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai",
name,
password)
//2、全局配置
.globalConfig(builder -> {
builder.author("guanrong.yin") // 设置作者名
.fileOverride() // 开启覆盖已生成文件,默认值false
.enableSwagger() // 开启 swagger 模式,默认值false
.dateType(DateType.ONLY_DATE) //定义生成的实体类中日期类型
// 指定输出目录,注意可根据包修改,20211206!!!!
.outputDir(projectPath + "/src/main/java")
.disableOpenDir();
})
//3、包配置
.packageConfig(builder -> {
builder.parent(parent) // 设置父包名,注意一定要根据包修改

// .moduleName("core") // 父包模块名,默认值:无,注意根据包修改
.entity("entities") // Entity包名
.service("service") // Service包名
.serviceImpl("service.impl") // ServiceImpl包名
.controller("controller") // Controller包名
.mapper("mapper") // Mapper包名
.xml("mapper") // Mapper XML包名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, projectPath + "/src/main/resources/mapper")); // 路径配置信息,设置mapperXml生成路径
})

//4、策略配置
.strategyConfig(builder -> {
builder.addInclude(tables) // 设置需要生成的数据表名
.addTablePrefix(addTablePrefix) // 设置过滤表前缀
//4.1、实体类策略配置
.entityBuilder()
.enableLombok() //开启 Lombok

// .disableSerialVersionUID() //不实现 Serializable 接口,不生产 SerialVersionUID
// .logicDeleteColumnName("deleted") //逻辑删除字段名
.naming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略:下划线转驼峰命
.columnNaming(NamingStrategy.underline_to_camel) //数据库表字段映射到实体的命名策略:下划线转驼峰命
.addTableFills(
new Column("created_time", FieldFill.INSERT),
new Column("updated_time", FieldFill.INSERT_UPDATE)
) //添加表字段填充,"create_time"字段自动填充为插入时间,"modify_time"字段自动填充为插入修改时间
.enableTableFieldAnnotation() // 开启生成实体时生成字段注解

//4.2、service 策略配置
.serviceBuilder()
.formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名
.formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名
//4.3、Mapper策略配置
.mapperBuilder()
.superClass(BaseMapper.class) //设置父类
.formatMapperFileName("%sMapper") //格式化 mapper 文件名称
.enableMapperAnnotation() //开启 @Mapper 注解
.formatXmlFileName("%sXml") //格式化 Xml 文件名称
//4.4、Controller策略配置
.controllerBuilder()
.formatFileName("%sController") //格式化 Controller 类文件名称,%s进行匹配表名,如 UserController
.enableRestStyle(); //开启生成 @RestController 控制器
})
//5、模板引擎配置
.templateEngine(new VelocityTemplateEngine()) // 默认
//6、执行
.execute();
}
public static void main(String[] args) {
// 获取项目路径
String projectPath = "D:/JetBrainsit-work/Idea-Java/yikes-srb/server-core/null";
// 数据库地址、名称、密码
String url = "121.5.71.225:31585/db_workshop";
String name = "root";
String password = "test@mysql!";
// 快速生成数据库的表名称
ArrayList<String> tables = new ArrayList<>();
tables.add("i_machine");
tables.add("i_machine_craft_detail");
tables.add("i_machine_type");
tables.add("i_machine_type_craft");
tables.add("i_material");
tables.add("i_material_process");
// 父包名
String parent = "com.cloud";
// 设置过滤表前缀
String addTablePrefix = "i_";
generatorCode(projectPath, url, name, password, tables, parent, addTablePrefix);
}

}

二、pom.xml文件

com.baomidou mybatis-plus-boot-starter com.baomidou mybatis-plus-generator org.apache.velocity velocity-engine-core
posted @   yikes_ygr  阅读(85)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
点击右上角即可分享
微信分享提示