导包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
2. 生成代码(自己先配好MybatisPlus奥)
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
private final String outputDir = "D:\\generatorCode";
private final String moduleName = "test";
private final String parentName = "com.test";
@PostMapping("/generator")
@ApiOperation("生成代码")
@Anon
public Result<String> generator(@ApiParam("表名") @RequestBody List<String> tables){
FastAutoGenerator.create(url,username,password)
.globalConfig(builder -> {
builder.outputDir(outputDir)
.enableSwagger()
.commentDate(CommonConstant.DATE_YYYY_MM_DD_HH_MM_SS)
.fileOverride();
})
.packageConfig(builder -> {
builder.parent(parentName)
.moduleName(moduleName)
.entity("entity")
.service("service")
.serviceImpl("service.impl")
.controller("controller")
.mapper("mapper")
.xml("mapper")
.pathInfo(Collections.singletonMap(OutputFile.mapperXml,outputDir+ File.separator+parentName.replace(".",File.separator)+ File.separator+moduleName+File.separator+"mapper"+File.separator+"xml"));
})
.strategyConfig(builder -> {
builder.addInclude(tables)
.serviceBuilder()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImpl")
.entityBuilder()
.enableLombok()
.logicDeleteColumnName("del_flag")
.enableTableFieldAnnotation()
.controllerBuilder()
.enableHyphenStyle()
.formatFileName("%sController")
.enableRestStyle()
.mapperBuilder()
.enableBaseResultMap()
.superClass(BaseMapper.class)
.formatMapperFileName("%sMapper")
.enableMapperAnnotation()
.formatXmlFileName("%sMapper");
})
.templateConfig(builder -> {
builder.entity("templates/myentity.java");
})
.templateEngine(new FreemarkerTemplateEngine())
.execute();
return Result.OK();
}