Dependency Conifguration
<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>
<version>2.3.31</version>
</dependency>
Code Generation Impleemntation
@Value("${spring.datasource.url}")
private String dbUrl;
@Value("${spring.datasource.username}")
private String dbUser;
@Value("${spring.datasource.password}")
private String dbPassword;
private final String outputDirectory = "/path/to/generated/code";
private final String packageName = "com.example";
private final String module = "demo";
@PostMapping("/generate")
public ResponseEntity<String> generateCode(@RequestBody List<String> tableNames) {
FastAutoGenerator.create(dbUrl, dbUser, dbPassword)
.globalConfig(config -> {
config.outputDir(outputDirectory)
.enableSwagger()
.commentDate("yyyy-MM-dd HH:mm:ss")
.overrideExistingFiles(true);
})
.packageConfig(pkg -> {
pkg.parent(packageName)
.moduleName(module)
.entity("model")
.service("service")
.serviceImpl("service.impl")
.controller("web")
.mapper("dao")
.xml("mapper");
})
.strategyConfig(strategy -> {
strategy.addInclude(tableNames)
.entityBuilder()
.enableLombok()
.logicDeletePropertyName("deleted")
.controllerBuilder()
.enableRestStyle()
.mapperBuilder()
.enableBaseResultMap()
.superClass(BaseMapper.class);
})
.templateEngine(new FreemarkerTemplateEngine())
.execute();
return ResponseEntity.ok("Code generation completed");
}