mybatis-plus代码生成工具api过时

2021-06-11  本文已影响0人  毕加索1881

之前一直都是使用mybatis-plus的代码生成工具,可以一键生成controller、service、entity、mapper 真的很是方便。最近手闲升级了一下mybatis-plus的版本,升级后吓我一跳,之前写的生成代码的部分,居然过时了很多api。到处都是删除线,强迫症的我差点吐一口老血而亡。


image.png

看着实在难受,去mybatis-plus的官网查了一下,官网的文档也没更新最新的代码,还是使用老的api。哎~ 只能自己动手来改造了!


image.png
查了一下源码,看到了有删除api的类,几乎都是重构,使用了建造者模式!那我也使用建造者模式也重构一下我的代码呗!

修改后的代码如下:

 public static void main(String[] args) {
        // 数据源配置
        DataSourceConfig mDataSourceConfig = new DataSourceConfig
                .Builder(dataSourceUrl, dataSourceUserName, dataSourcePwd)
                .driver(dataSourceDriveName).build();
        // 全局配置
        String projectPath = System.getProperty("user.dir");
        GlobalConfig mGlobalConfig = new GlobalConfig.Builder()
                .author("wone").openDir(false)
                .outputDir(projectPath + "/src/main/java").build();
        String moduleName = scanner("模块名");
        //包配置
        PackageConfig mPackageConfig = new PackageConfig.Builder()
                .moduleName(moduleName).parent("com.nantian.bootproject").build();
        // 自定义配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                // to do nothing
            }
        };
        List<FileOutConfig> focList = new ArrayList<>();
        focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
            @Override
            public File outputFile(TableInfo tableInfo) {
                // 自定义输入文件名称
                return new File(projectPath + "/src/main/resources/mapper/" + moduleName
                        + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML);
            }
        });
        cfg.addFileOutConfig(focList);
        // 配置模板
        TemplateConfig mTemplateConfig = new TemplateConfig.Builder()
                .controller("templates/controller.java")
                .entity("templates/entity.java")
                .service("templates/service.java", "templates/serviceImpl.java")
                .mapper("templates/mapper.java").build();
        // 策略配置
        //strategy.setSuperEntityClass("com.baomidou.mybatisplus.samples.generator.common.BaseEntity");
        //strategy.setSuperControllerClass("com.baomidou.mybatisplus.samples.generator.common.BaseController");
        StrategyConfig mStrategyConfig = new StrategyConfig.Builder()
                .addInclude(scanner("表名")).addTablePrefix(moduleName + "_")
                .entityBuilder().naming(NamingStrategy.underline_to_camel)
                .columnNaming((NamingStrategy.underline_to_camel))
                .lombok(true).addSuperEntityColumns("id")
                .controllerBuilder().hyphenStyle(true)
                .build();
        // 代码生成器
        new AutoGenerator(mDataSourceConfig)
                .global(mGlobalConfig).packageInfo(mPackageConfig)
                .injection(cfg).template(mTemplateConfig)
                .engine(new FreemarkerTemplateEngine())
                .strategy(mStrategyConfig).execute();
    }

修改后的代码看着清爽多了!我的代码世界顿时又美好了~

上一篇下一篇

猜你喜欢

热点阅读