zoukankan      html  css  js  c++  java
  • Mybaties的代码生成器

    java文件

    package com.sw;
    
    import com.baomidou.mybatisplus.generator.AutoGenerator;
    import com.baomidou.mybatisplus.generator.config.*;
    import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
    import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
    import com.baomidou.mybatisplus.generator.config.rules.DbType;
    import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    
    public class MpGenerator {
        /**
         * <p>
         * MySQL 生成演示
         * </p>
         */
        public static void main(String[] args) {
            AutoGenerator mpg = new AutoGenerator();
            // 选择 freemarker 引擎,默认 Veloctiy
            // mpg.setTemplateEngine(new FreemarkerTemplateEngine());
    
            // 全局配置
            GlobalConfig gc = new GlobalConfig();
            gc.setOutputDir("c:/1");
            gc.setFileOverride(true);
            gc.setActiveRecord(true);// 不需要ActiveRecord特性的请改为false
            gc.setEnableCache(false);// XML 二级缓存
            gc.setBaseResultMap(true);// XML ResultMap
            gc.setBaseColumnList(true);// XML columList
            // .setKotlin(true) 是否生成 kotlin 代码
            gc.setAuthor("tanyuc");
    
            // 自定义文件命名,注意 %s 会自动填充表实体属性!
            // gc.setMapperName("%sDao");
            // gc.setXmlName("%sDao");
            // gc.setServiceName("MP%sService");bbt_dealer_re_grade
            // gc.setServiceImplName("%sServiceDiy");
            // gc.setControllerName("%sAction");
            mpg.setGlobalConfig(gc);
    
            // 数据源配置
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setDbType(DbType.MYSQL);
            dsc.setTypeConvert(new MySqlTypeConvert(){
                // 自定义数据库表字段类型转换【可选】
                @Override
                public DbColumnType processTypeConvert(String fieldType) {
                   // System.out.println("转换类型:" + fieldType);
                    // 注意!!processTypeConvert 存在默认类型转换,如果不是你要的效果请自定义返回、非如下直接返回。
                    return super.processTypeConvert(fieldType);
                }
            });
            dsc.setDriverName("com.mysql.jdbc.Driver");
            dsc.setUsername("XXX");
            dsc.setPassword("XXX");
            dsc.setUrl("XXX");
            mpg.setDataSource(dsc);
    
            // 策略配置
            StrategyConfig strategy = new StrategyConfig();
            // strategy.setCapitalMode(true);// 全局大写命名 ORACLE 注意
            strategy.setTablePrefix(new String[] { "bbt_"});// 此处可以修改为您的表前缀
            strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
             strategy.setInclude(new String[] { "bbt_optional"}); // 需要生成的表
            // strategy.setExclude(new String[]{"test"}); // 排除生成的表
            // 自定义实体父类
            // strategy.setSuperEntityClass("com.baomidou.demo.TestEntity");
            // 自定义实体,公共字段
            // strategy.setSuperEntityColumns(new String[] { "test_id", "age" });
            // 自定义 mapper 父类
            // strategy.setSuperMapperClass("com.baomidou.demo.TestMapper");
            // 自定义 service 父类
             strategy.setSuperServiceClass("com.sunaw.czd.common.service.IBaseService");
            // 自定义 service 实现类父类
             strategy.setSuperServiceImplClass("com.sunaw.czd.common.service.impl.BaseServiceImpl");
            // 自定义 controller 父类
            // strategy.setSuperControllerClass("com.baomidou.demo.TestController");
            // 【实体】是否生成字段常量(默认 false)
            // public static final String ID = "test_id";
            // strategy.setEntityColumnConstant(true);
            // 【实体】是否为构建者模型(默认 false)
            // public User setName(String name) {this.name = name; return this;}
            // strategy.setEntityBuilderModel(true);
            mpg.setStrategy(strategy);
    
            // 包配置
            PackageConfig pc = new PackageConfig();
            pc.setParent("com.sunaw.czd");
            pc.setModuleName("intent");
            pc.setController("controller.impl");
            pc.setMapper("dao");
            mpg.setPackageInfo(pc);
    
            // 注入自定义配置,可以在 VM 中使用 cfg.abc 【可无】
    //        InjectionConfig cfg = new InjectionConfig() {
    //            @Override
    //            public void initMap() {
    //                Map<String, Object> map = new HashMap<String, Object>();
    //                map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");
    //                this.setMap(map);
    //            }
    //        };
    
            // 自定义 xxList.jsp 生成
    //        List<FileOutConfig> focList = new ArrayList<FileOutConfig>();
    //        focList.add(new FileOutConfig("/template/list.jsp.vm") {
    //            @Override
    //            public String outputFile(TableInfo tableInfo) {
    //                // 自定义输入文件名称
    //                return "D://my_" + tableInfo.getEntityName() + ".jsp";
    //            }
    //        });
    //        cfg.setFileOutConfigList(focList);
    //        mpg.setCfg(cfg);
    
            // 调整 xml 生成目录演示
    //        focList.add(new FileOutConfig("/templates/mapper.xml.vm") {
    //            @Override
    //            public String outputFile(TableInfo tableInfo) {
    //                return "/develop/code/xml/" + tableInfo.getEntityName() + ".xml";
    //            }
    //        });
    //        cfg.setFileOutConfigList(focList);
    //        mpg.setCfg(cfg);
    
            // 关闭默认 xml 生成,调整生成 至 根目录
    //        TemplateConfig tc = new TemplateConfig();
    //        tc.setXml(null);
    //        mpg.setTemplate(tc);
    
            // 自定义模板配置,可以 copy 源码 mybatis-plus/src/main/resources/templates 下面内容修改,
            // 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称
            // TemplateConfig tc = new TemplateConfig();
            // tc.setController("...");
            // tc.setEntity("...");
            // tc.setMapper("...");
            // tc.setXml("...");
            // tc.setService("...");
            // tc.setServiceImpl("...");
            // 如上任何一个模块如果设置 空 OR Null 将不生成该模块。
            // mpg.setTemplate(tc);
    
            // 执行生成
            mpg.execute();
    
            // 打印注入设置【可无】
    //        System.err.println(mpg.getCfg().getMap().get("abc"));
        }
    
    }

    pom文件导入jar包

    <!-- MP 核心库 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus</artifactId>
                <version>2.1.8</version>
            </dependency>
    
            <!-- 模板引擎 -->
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-tools</artifactId>
                <version>2.0</version>
            </dependency>
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.7.7</version>
            </dependency>
    
            <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
                <version>5.1.46</version>
            <scope>runtime</scope>
        </dependency>
  • 相关阅读:
    Educational Codeforces Round 83 --- F. AND Segments
    Educational Codeforces Round 83 --- G. Autocompletion
    SEERC 2019 A.Max or Min
    2019-2020 ICPC Southwestern European Regional Programming Contest(Gym 102501)
    Educational Codeforces Round 78 --- F. Cards
    今天我学习了一门全新的语言
    codeforces 1323D 题解(数学)
    Educational Codeforces Round 80 (Div. 2) 题解 1288A 1288B 1288C 1288D 1288E
    Educational Codeforces Round 81 (Div. 2) 题解 1295A 1295B 1295C 1295D 1295E 1295F
    Codeforces Round #617 (Div. 3) 题解 1296C 1296D 1296E 1296F
  • 原文地址:https://www.cnblogs.com/tanyucong/p/9325065.html
Copyright © 2011-2022 走看看