# MybatisPlus代码生成器 **Repository Path**: qjqlzwh/mybatis-plus-code-generator ## Basic Information - **Project Name**: MybatisPlus代码生成器 - **Description**: MybatisPlus新版代码生成器使用 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-08-28 - **Last Updated**: 2023-09-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MybatisPlus代码生成器 #### 介绍 MybatisPlus新版代码生成器使用 ``` @SpringBootApplication public class CodeGeneratorApplication { private static final String url = "jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&characterEncoding=utf8&useSSL=false"; private static final String username = "root"; private static final String password = "123456"; // 作者 private static final String author = "666"; // 输出目录 private static final String outputDir = "D:/Code/code-generator/src/main/java"; // 模块名 private static final String moduleName = "tmp"; // 要生成的表 private static final String[] tableNames = {"c_user", "f_ad"}; // 要过滤的表前缀 private static final String[] filterTablePrefix = {"f_", "bu_", "c_"}; // 上级实体类的字段,不需要生成到实体类 private static final String[] superEntityColumns = {"id", "create_date", "modify_date", "company_code", "create_by", "modify_by"}; public static void main(String[] args) { FastAutoGenerator.create(url, username, password) .dataSourceConfig(builder -> { builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> { // 包装类转基本数据类型 IColumnType columnType = typeRegistry.getColumnType(metaInfo); if (DbColumnType.LONG.equals(columnType)) { return DbColumnType.BASE_LONG; } else if (DbColumnType.INTEGER.equals(columnType)) { return DbColumnType.BASE_INT; } else if (DbColumnType.BOOLEAN.equals(columnType)) { return DbColumnType.BASE_BOOLEAN; } return columnType; }); }) .globalConfig(builder -> { builder.author(author) // 设置作者 // .enableSwagger() // 开启 swagger 模式 .outputDir(outputDir) // 指定输出目录 .disableOpenDir() .dateType(DateType.ONLY_DATE); // 设置日期类型 java.util.Date }) .packageConfig(builder -> { builder.parent("com.sc") // 设置父包名 .moduleName(moduleName) // 设置父包模块名 .controller("controller") .entity("entity") .service("service") .mapper("dao"); // .pathInfo(Collections.singletonMap(OutputFile.xml, outputDir));// 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder.enableCapitalMode() .enableSkipView() .disableSqlFilter() .addInclude(tableNames) .addTablePrefix(filterTablePrefix); builder.controllerBuilder() //controller层 .enableFileOverride() // 覆盖已生成文件 .enableRestStyle() .superClass(BaseController.class) .enableRestStyle(); builder.entityBuilder()//实体类 .enableFileOverride() .superClass(BaseEntity.class) .enableLombok() .enableRemoveIsPrefix() .addSuperEntityColumns(superEntityColumns); builder.serviceBuilder() //service层 .enableFileOverride() .superServiceClass(BaseService.class) //模板中需要继承的类 .superServiceImplClass(BaseServiceImpl.class) .formatServiceFileName("%sService"); builder.mapperBuilder() .enableFileOverride() .superClass(BaseDao.class) .mapperAnnotation(Mapper.class) .formatMapperFileName("%sDao"); }) .injectionConfig(builder -> { Map map = new HashMap<>(); map.put("BasicDTO", "BasicDTO"); map.put("BasicDTOPkg", "com.sc.dependencies.dto.BasicDTO"); map.put("DTOPkg", "com.sc." + moduleName + ".dto"); map.put("PageCDTO", "PageCDTO"); map.put("PageCDTOPkg", "com.sc.dependencies.dto.PageCDTO"); map.put("CDTOPkg", "com.sc." + moduleName + ".dto.condition"); builder.customMap(map) .customFile(file -> { file.fileName("DTO.java") .templatePath("/templates/dto.java.ftl") .packageName("dto") .enableFileOverride(); }) .customFile(file -> { file.fileName("PageCDTO.java") .templatePath("/templates/cdto.java.ftl") .packageName("dto.condition") .enableFileOverride(); }) .customFile(file -> { file.fileName(".list.vue") .templatePath("/templates/list.vue.ftl") .packageName("vue") .enableFileOverride(); }) .customFile(file -> { file.fileName(".edit.vue") .templatePath("/templates/edit.vue.ftl") .packageName("vue") .enableFileOverride(); }); }) .templateConfig(builder -> { builder.disable(TemplateType.ENTITY, TemplateType.SERVICE, TemplateType.SERVICE_IMPL, TemplateType.CONTROLLER, TemplateType.MAPPER) .entity("/templates/entity.java") .service("/templates/service.java") .serviceImpl("/templates/serviceImpl.java") .controller("/templates/controller.java") // .xml("/templates/mapper.xml") .mapper("/templates/mapper.java"); }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute(); } } ```