• mybatisplus


    <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.4.0</version>
            </dependency>

            <!--代码生成引擎-->
            <dependency>
                <artifactId>velocity</artifactId>
                <groupId>org.apache.velocity</groupId>
                <version>1.7</version>
            </dependency>
            <!--mybatis-plus 后台生成代码所需-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>3.4.1</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.baomidou</groupId>
                        <artifactId>mybatis-plus-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.baomidou</groupId>
                        <artifactId>mybatis-plus-extension</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.baomidou</groupId>
                        <artifactId>mybatis-plus-annotation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

    package com.resgo.financial.code;
    
    import com.baomidou.mybatisplus.annotation.DbType;
    import com.baomidou.mybatisplus.core.toolkit.StringPool;
    import com.baomidou.mybatisplus.generator.AutoGenerator;
    import com.baomidou.mybatisplus.generator.InjectionConfig;
    import com.baomidou.mybatisplus.generator.config.*;
    import com.baomidou.mybatisplus.generator.config.po.TableInfo;
    import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MysqlCodeGenerator {
    
        public final static String projectPath = System.getProperty("user.dir")+"/resgo-financial-provider";
    
        public static void main(String[] args) {
            // 代码生成器
            AutoGenerator mpg = new AutoGenerator();
    
            // 全局配置
            GlobalConfig gc = new GlobalConfig();
            // String projectPath = System.getProperty("user.dir");
            gc.setOutputDir(projectPath + "/src/main/java");
            gc.setAuthor("YYZ");
            gc.setSwagger2(true);
            gc.setFileOverride(false); //是否覆盖
            gc.setActiveRecord(false);// 不需要ActiveRecord特性的请改为false
            gc.setEnableCache(false);// XML 二级缓存
            gc.setBaseResultMap(true);// XML ResultMap
            gc.setBaseColumnList(true);// XML columList
    
            // 自定义文件命名,注意 %s 会自动填充表实体属性!
            gc.setMapperName("%sMapper");
            gc.setXmlName("%sMapper");
            gc.setServiceName("%sService");
            gc.setServiceImplName("%sServiceImpl");
            gc.setControllerName("%sController");
    
            mpg.setGlobalConfig(gc);
    
            // 数据源配置
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setDbType(DbType.MYSQL);
            dsc.setUrl("jdbc:mysql://192.168.1.16:3306/cloud_dev?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8");
            dsc.setDriverName("com.alibaba.druid.pool.DruidDataSource");
            dsc.setUsername("root");
            dsc.setPassword("123456.com");
            mpg.setDataSource(dsc);
    
            // 策略配置
            StrategyConfig strategy = new StrategyConfig();
            // strategy.setCapitalMode(true);// 全局大写命名 ORACLE 注意
            strategy.setTablePrefix(new String[] { "" });// 此处可以修改为您的表前缀
            strategy.setNaming(NamingStrategy.underline_to_camel);
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);
            strategy.setEntityLombokModel(true);
            strategy.setRestControllerStyle(true);
    
            strategy.setInclude(new String[] { "fn_receipt","fn_receipt_writeoff"}); // 需要生成的表
    
    //        strategy.setInclude(new String[] { "lab_report","lab_report_attachment","lab_report_sku","lab_report_store"}); // 需要生成的表
    
            // strategy.setExclude(new String[]{"test"}); // 排除生成的表
            mpg.setStrategy(strategy);
    
            // 包配置
            PackageConfig pc = new PackageConfig();
            pc.setParent("com.resgo.financial");
            pc.setController("controller");
            pc.setModuleName("");
            pc.setEntity("domain");
            pc.setMapper("mapper");
            mpg.setPackageInfo(pc);
    
            // 自定义配置
            InjectionConfig cfg = new InjectionConfig() {
                @Override
                public void initMap() {
                    // to do nothing
                }
            };
            // 自定义输出配置
            List<FileOutConfig> focList = new ArrayList<>();
            // 如果模板引擎是 velocity
            String templatePath = "/templates/mapper.xml.vm";
            // 自定义配置会被优先输出
            focList.add(new FileOutConfig(templatePath) {
                @Override
                public String outputFile(TableInfo tableInfo) {
                    // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
                    return projectPath + "/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
                }
            });
    
    //        cfg.setFileCreate(new IFileCreate() {
    //            @Override
    //            public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
    //                // 判断自定义文件夹是否需要创建
    ////                checkDir("调用默认方法创建的目录,自定义目录用");
    //                if (fileType == FileType.ENTITY) {
    //                    // 已经生成 entity 文件判断存在,不想重新生成返回 false
    //                    return true;
    //                }
    //                if (fileType != FileType.ENTITY) {
    //                    // 已经生成 其他 文件 ,判断存在,不想重新生成返回 false
    //                    return new File(filePath).exists();
    //                }
    //                // 允许生成模板文件
    //                return true;
    //            }
    //        });
    
            cfg.setFileOutConfigList(focList);
            mpg.setCfg(cfg);
    
            // 配置模板
            TemplateConfig templateConfig = new TemplateConfig();
    
    ////        配置不生成controller
    //        templateConfig.setController("");
    ////
    ////        配置不生成service
    //        templateConfig.setService("");
    ////
    ////        配置不生成serviceImpl
    //        templateConfig.setServiceImpl("");
    ////
    ////        配置不生成Mapper
    //        templateConfig.setMapper("");
    ////
    ////        配置不生成Mapper.xml
    //        templateConfig.setXml("");
    ////
    ////        配置不生成entity
    //        templateConfig.setEntity("");
    
            templateConfig.setXml(null);
            mpg.setTemplate(templateConfig);
            mpg.setTemplateEngine(new VelocityTemplateEngine());
    
            // 执行生成
            mpg.execute();
    
        }
    
    }
  • 相关阅读:
    PHP 将二维数组中某列值作为数组的键名
    MySQL 8下忘密码后重置密码
    单一职责原则
    Linux下安装SVN服务端小白教程
    go 代码玩耍
    centos7 docker开启认证的远程端口2376配置教程
    Dockerfile RUN,CMD,ENTRYPOINT命令区别
    wait-for-it.sh脚本控制docker-compose启动顺序详解
    阿里云服务器漏洞修复_2020.5.22
    Let's Encrypt 免费通配符 SSL 证书申请教程
  • 原文地址:https://www.cnblogs.com/yyzyou/p/16379162.html
Copyright © 2020-2023  润新知