package com.ruoyi.generator; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import com.baomidou.mybatisplus.generator.fill.Column; import java.util.Collections; /** * MyBatis-Plus 代码生成器 */ public class PlusCodeGenerator { public static void main(String[] args) { // 数据库配置 String url = "jdbc:postgresql://lunor.cn:5431/ruoyi-java"; String username = "test"; String password = "chj123456"; // 项目基础包名 String basePackage = "com.example"; String projectPath = System.getProperty("user.dir"); FastAutoGenerator.create(url, username, password) .globalConfig(builder -> { builder.author("your name") // 设置作者 .outputDir(System.getProperty("user.dir") + "/src/main/java") // 指定输出目录 .dateType(DateType.ONLY_DATE) // 设置时间类型策略 .disableOpenDir(); // 禁止打开输出目录 }) .packageConfig(builder -> { builder.parent(basePackage) // 设置父包名 .moduleName("test") // 设置父包模块名 .entity("entity") // 设置实体类包名 .mapper("mapper") // 设置 Mapper 接口包名 .service("service") // 设置 Service 接口包名 .serviceImpl("service.impl") // 设置 Service 实现类包名 .pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + "/src/main/resources/mapper")); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder.addInclude("test") // 设置需要生成的表名 .addTablePrefix("t_", "sys_") // 设置过滤表前缀 // Entity 策略配置 .entityBuilder() .enableLombok() //开启 Lombok .naming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略:下划线转驼峰命 .columnNaming(NamingStrategy.underline_to_camel) //数据库表字段映射到实体的命名策略:下划线转驼峰命 .enableFileOverride() // 覆盖已经生成的Entity文件 .logicDeleteColumnName("deleted") // 设置逻辑删除字段 .addTableFills( new Column("deleted", FieldFill.INSERT), new Column("create_time", FieldFill.INSERT), new Column("update_time", FieldFill.INSERT_UPDATE), new Column("create_user", FieldFill.INSERT), new Column("update_user", FieldFill.INSERT_UPDATE) ) .idType(IdType.AUTO) // 自增主键 .enableTableFieldAnnotation() // 开启生成实体时生成字段注解 // Mapper 策略配置 .mapperBuilder() .enableFileOverride() // 覆盖已生成Mapper文件 .enableBaseResultMap() // 自动生成resultMap .enableBaseColumnList() // 启用 BaseColumnList // Service 策略配置 .serviceBuilder() .formatServiceFileName("%sService") .formatServiceImplFileName("%sServiceImpl") .enableFileOverride() // 覆盖已生成文件 // Controller 策略配置 .controllerBuilder() .enableRestStyle() // 开启RestController注解 .enableFileOverride() // 覆盖已生成文件 ; }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎 .execute(); } }