1.交互生成
package com.company.codeGen; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import java.io.InputStream; import java.util.*; // 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中 public class CodeGenerator { public static void main(String[] args) { FastAutoGenerator.create("jdbc:mysql://localhost:3306/codegen","root","123456") .globalConfig((scanner, builder) -> { builder.author("zh_xiao") //作者 .outputDir(System.getProperty("user.dir")+"\src\main\java") //输出路径(写到java目录) .enableSwagger() //开启swagger .commentDate("yyyy-MM-dd") //注释日期 .fileOverride(); //开启覆盖之前生成的文件 }) .packageConfig((scanner, builder) -> { builder.parent("com.company.projectname") //父包名 .moduleName("modules") //父包模块名 .entity("entity") //Entity 包名 .service("service") //Service 包名 .serviceImpl("service.impl") //Service Impl 包名 .controller("controller") //Controller 包名 .mapper("mapper") //Mapper 包名 .xml("mapper.xml") //Mapper XML 包名 //路径配置信息Collections.singletonMap(OutputFile.mapperXml, "D://") .pathInfo(Collections.singletonMap(OutputFile.mapperXml,System.getProperty("user.dir")+"\src\main\resources\mappers")); }) //策略配置(StrategyConfig) .strategyConfig((scanner, builder) -> { builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all"))) //增加表匹配(内存过滤) .serviceBuilder() //service 策略配置 .formatServiceFileName("%sService") // .formatServiceImplFileName("%sServiceImpl") .entityBuilder() //实体策略配置 .enableLombok() .logicDeleteColumnName("deleted") .enableTableFieldAnnotation() .controllerBuilder() //controller 策略配置 .formatFileName("%sController") .enableRestStyle() .mapperBuilder() //mapper 策略配置 .enableBaseResultMap() //生成通用的resultMap .superClass(BaseMapper.class) .formatMapperFileName("%sMapper") .enableMapperAnnotation() .formatXmlFileName("%sMapper"); }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute(); } // 处理 all 情况 protected static ListgetTables(String tables) { return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(",")); } }