public class CodeGenerator {
//项目包路径
private String packageNames = "com.xxgc.eow";
//数据库地址
@Autowired
private DataSource dataSource;
public void generator(String tableName,boolean noController){
//获取工程地址
String systemUrlJava = System.getProperty("user.dir")+"\\src\\main\\java\\";
String systemUrlMapper = System.getProperty("user.dir")+"\\src\\main\\resources\\mapper\\";
FastAutoGenerator.create(dataSource.getUrl(), dataSource.getUsername(), dataSource.getPassword())
.globalConfig(builder -> {
builder.author("Mr.Abel") // 设置作者
.enableSwagger() // 开启 swagger 模式
.enableSpringdoc()
.fileOverride() // 覆盖已生成文件
.disableOpenDir() //禁止打开输出目录
.outputDir(systemUrlJava); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent(packageNames) // 设置父包名
.moduleName(null) // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.xml, systemUrlMapper)); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.entityBuilder()
//有效列
.logicDeleteColumnName("deleted")
//lombok
.enableLombok()
//组件类型
.idType(IdType.AUTO)
//注解生成
.addTableFills(
new Column("create_time", FieldFill.INSERT),
new Column("update_time", FieldFill.INSERT_UPDATE)
);
builder.mapperBuilder().enableMapperAnnotation().build(); //启用@mapper注释
builder.controllerBuilder().enableHyphenStyle().enableRestStyle(); //启用驼峰转连字符样式
builder.addInclude(tableName);
})
.templateConfig(builder -> {
//不生成前端控制器
if(noController){
builder.disable(TemplateType.CONTROLLER);
}
})
.execute();
}
}
最后修改于 2024-03-12 19:54:15
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

