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); }
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤