美文网首页
mybatis-plus代码生成工具api过时

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

作者: 毕加索1881 | 来源:发表于2021-06-11 15:06 被阅读0次

    之前一直都是使用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();
        }
    

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

    相关文章

      网友评论

          本文标题:mybatis-plus代码生成工具api过时

          本文链接:https://www.haomeiwen.com/subject/enqveltx.html