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
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇