Search in sources :

Example 1 with DbColumnType

use of com.baomidou.mybatisplus.generator.config.rules.DbColumnType in project haha by hahafreeasair666.

the class MybatisPlusConfig method main.

/**
 * <p>
 * mysql 自动生成工具
 * </p>
 */
public static void main(String[] args) {
    AutoGenerator mpg = new AutoGenerator();
    String url = MybatisPlusConfig.class.getClassLoader().getResource("").getPath();
    File file = new File(url);
    String projectPath = file.getParentFile().getParentFile().getAbsolutePath();
    String srcPath = projectPath + File.separator + "src" + File.separator + "main" + File.separator + "java";
    // System.out.println(url);
    // System.out.println(projectPath);
    System.out.println("源代码将生成到(包会自动创建):" + srcPath);
    // 全局配置
    GlobalConfig gc = new GlobalConfig();
    gc.setOutputDir(srcPath);
    gc.setServiceName("%sService");
    gc.setFileOverride(true);
    gc.setActiveRecord(true);
    // XML 二级缓存
    gc.setEnableCache(false);
    // XML ResultMap
    gc.setBaseResultMap(true);
    // XML columList
    gc.setBaseColumnList(false);
    gc.setAuthor("");
    gc.setKotlin(false);
    // 自定义文件命名,注意 %s 会自动填充表实体属性!
    // gc.setMapperName("%sDao");
    // gc.setXmlName("%sDao");
    // gc.setServiceName("MP%sService");
    // 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);
            return super.processTypeConvert(fieldType);
        }
    });
    dsc.setDriverName("com.mysql.jdbc.Driver");
    dsc.setUsername("root");
    dsc.setPassword("a123456+");
    dsc.setUrl("jdbc:mysql://gz-cdb-mfro5399.sql.tencentcdb.com:63292/hahaapi?characterEncoding=utf8");
    mpg.setDataSource(dsc);
    // 策略配置
    StrategyConfig strategy = new StrategyConfig();
    // strategy.setTablePrefix(new String[] { "adconfig_" });// 此处可以修改为您的表前缀
    // strategy.setNaming(NamingStrategy.removePrefixAndCamel(name,new
    // String[]{"t_"}));// 表名生成策略
    // strategy.setExclude(new String[] { "productinfo", "view_product_spec"
    // }); // 排除生成的表
    // 
    strategy.setInclude(new String[] { "adoptionfeedback" });
    // 需要生成的表
    // 字段名生成策略
    strategy.setNaming(NamingStrategy.underline_to_camel);
    // 逻辑删除字段
    strategy.setLogicDeleteFieldName("isdel");
    // 自定义实体父类
    // strategy.setSuperEntityClass("com.fcs.demo.TestEntity");
    // 自定义实体,公共字段
    // strategy.setSuperEntityColumns(new String[] { "is_del",
    // "create_time", "update_time" });
    // 自定义 mapper 父类
    // strategy.setSuperMapperClass("com.fcs.demo.TestMapper");
    // 自定义 testservice 父类
    // strategy.setSuperServiceClass("com.fcs.demo.TestService");
    // 自定义 testservice 实现类父类
    // strategy.setSuperServiceImplClass("com.fcs.demo.TestServiceImpl");
    // 自定义 controller 父类
    // strategy.setSuperControllerClass("com.fcs.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.setEntityBuliderModel(true);
    mpg.setStrategy(strategy);
    // 包配置
    PackageConfig pc = new PackageConfig();
    pc.setParent("com.ch999.haha");
    pc.setModuleName("admin");
    pc.setController("controller");
    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);
    // 自定义模板配置,可以 copy 源码 mybatis-plus/src/main/resources/template 下面内容修改,
    // 放置自己项目的 src/main/resources/template 目录下, 默认名称一下可以不配置,也可以自定义模板名称
    // TemplateConfig tc = new TemplateConfig();
    // tc.setController("...");
    // tc.setEntity("...");
    // tc.setMapper("...");
    // tc.setXml("...");
    // tc.setService("...");
    // tc.setServiceImpl("...");
    // mpg.setTemplate(tc);
    // 执行生成
    mpg.execute();
// 打印注入设置
// System.err.println(mpg.getCfg().getMap().get("abc"));
}
Also used : DbColumnType(com.baomidou.mybatisplus.generator.config.rules.DbColumnType) StrategyConfig(com.baomidou.mybatisplus.generator.config.StrategyConfig) DataSourceConfig(com.baomidou.mybatisplus.generator.config.DataSourceConfig) GlobalConfig(com.baomidou.mybatisplus.generator.config.GlobalConfig) MySqlTypeConvert(com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert) File(java.io.File) PackageConfig(com.baomidou.mybatisplus.generator.config.PackageConfig) AutoGenerator(com.baomidou.mybatisplus.generator.AutoGenerator)

Example 2 with DbColumnType

use of com.baomidou.mybatisplus.generator.config.rules.DbColumnType in project neweagle-api by apgzs.

the class GeneratorTest method gen.

@Test
public void gen() {
    AutoGenerator mpg = new AutoGenerator();
    // 全局配置
    GlobalConfig gc = new GlobalConfig();
    gc.setOutputDir(OUTPUT);
    gc.setFileOverride(true);
    gc.setActiveRecord(true);
    // XML 二级缓存
    gc.setEnableCache(false);
    // XML ResultMap
    gc.setBaseResultMap(false);
    // XML columList
    gc.setBaseColumnList(false);
    gc.setAuthor(AUTHOR);
    // 自定义文件命名,注意 %s 会自动填充表实体属性!
    // gc.setMapperName("%sDao");
    // gc.setXmlName("%sDao");
    // gc.setServiceName("MP%sService");
    // 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);
            return super.processTypeConvert(fieldType);
        }
    });
    dsc.setDriverName("com.mysql.jdbc.Driver");
    dsc.setUsername(DB_USER);
    dsc.setPassword(DB_PASS);
    dsc.setUrl(DB_URL);
    mpg.setDataSource(dsc);
    // 策略配置
    StrategyConfig strategy = new StrategyConfig();
    // strategy.setCapitalMode(true);// 全局大写命名 ORACLE 注意
    // strategy.setTablePrefix(new String[] { "book_","sys_"});// 此处可以修改为您的表前缀
    // 表名生成策略
    strategy.setNaming(NamingStrategy.underline_to_camel);
    strategy.setSuperControllerClass("com.neweagle.api.comm.web.base.SuperController");
    strategy.setSuperMapperClass("com.neweagle.api.comm.plugin.mybatisplus.SuperMapper");
    // 需要生成的表
    strategy.setInclude(TABLE);
    // strategy.setExclude(new String[]{"test"}); // 排除生成的表
    // 自定义实体父类
    strategy.setSuperEntityClass("com.neweagle.api.comm.plugin.mybatisplus.SuperEntity");
    // 自定义实体,公共字段
    strategy.setSuperEntityColumns(new String[] { "id", "create_time", "update_time" });
    // 自定义 mapper 父类
    // strategy.setSuperMapperClass("com.baomidou.demo.TestMapper");
    // 自定义 service 父类
    // strategy.setSuperServiceClass("com.baomidou.demo.TestService");
    // 自定义 service 实现类父类
    // strategy.setSuperServiceImplClass("com.baomidou.demo.TestServiceImpl");
    // 自定义 web 父类
    // 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.setEntityBuliderModel(true);
    mpg.setStrategy(strategy);
    // 包配置
    PackageConfig pc = new PackageConfig();
    pc.setParent("com.neweagle.api.module");
    pc.setModuleName(MODULE);
    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);
    // 执行生成
    mpg.execute();
    // 打印注入设置
    System.err.println(mpg.getCfg().getMap().get("abc"));
}
Also used : DbColumnType(com.baomidou.mybatisplus.generator.config.rules.DbColumnType) HashMap(java.util.HashMap) MySqlTypeConvert(com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert) InjectionConfig(com.baomidou.mybatisplus.generator.InjectionConfig) AutoGenerator(com.baomidou.mybatisplus.generator.AutoGenerator) Test(org.junit.Test)

Example 3 with DbColumnType

use of com.baomidou.mybatisplus.generator.config.rules.DbColumnType in project vip by guangdada.

the class MyBatisPlusGenerator method main.

public static void main(String[] args) {
    AutoGenerator mpg = new AutoGenerator();
    // 全局配置
    GlobalConfig gc = new GlobalConfig();
    // 这里写你自己的java目录
    gc.setOutputDir("D:\\ideaSpace\\guns2\\src\\main\\java");
    // 是否覆盖
    gc.setFileOverride(true);
    gc.setActiveRecord(true);
    // XML 二级缓存
    gc.setEnableCache(false);
    // XML ResultMap
    gc.setBaseResultMap(true);
    // XML columList
    gc.setBaseColumnList(false);
    gc.setAuthor("chengxg");
    mpg.setGlobalConfig(gc);
    // 数据源配置
    DataSourceConfig dsc = new DataSourceConfig();
    dsc.setDbType(DbType.MYSQL);
    dsc.setTypeConvert(new MySqlTypeConvert() {

        // 自定义数据库表字段类型转换【可选】
        @Override
        public DbColumnType processTypeConvert(String fieldType) {
            return super.processTypeConvert(fieldType);
        }
    });
    dsc.setDriverName("com.mysql.jdbc.Driver");
    dsc.setUsername("kkjj");
    dsc.setPassword("KKjj111111!@#");
    dsc.setUrl("jdbc:mysql://192.168.168.153:3306/vipdb?characterEncoding=utf8");
    mpg.setDataSource(dsc);
    // 策略配置
    StrategyConfig strategy = new StrategyConfig();
    // 此处可以修改为您的表前缀
    strategy.setTablePrefix(new String[] { "v_" });
    // 表名生成策略
    strategy.setNaming(NamingStrategy.underline_to_camel);
    // 需要生成的表
    strategy.setInclude(new String[] { "v_store_coupon" });
    mpg.setStrategy(strategy);
    // 包配置
    PackageConfig pc = new PackageConfig();
    pc.setParent(null);
    pc.setEntity("com.ikoori.vip.common.persistence.model");
    pc.setMapper("com.ikoori.vip.common.persistence.dao");
    pc.setXml("com.ikoori.vip.common.persistence.dao.mapping");
    // 本项目没用,生成之后删掉
    pc.setService("TTT");
    // 本项目没用,生成之后删掉
    pc.setServiceImpl("TTT");
    // 本项目没用,生成之后删掉
    pc.setController("TTT");
    mpg.setPackageInfo(pc);
    // 注入自定义配置,可以在 VM 中使用 cfg.abc 设置的值
    InjectionConfig cfg = new InjectionConfig() {

        @Override
        public void initMap() {
            Map<String, Object> map = new HashMap<>();
            map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");
            this.setMap(map);
        }
    };
    mpg.setCfg(cfg);
    // 执行生成
    mpg.execute();
    // 打印注入设置
    System.err.println(mpg.getCfg().getMap().get("abc"));
}
Also used : DbColumnType(com.baomidou.mybatisplus.generator.config.rules.DbColumnType) HashMap(java.util.HashMap) DataSourceConfig(com.baomidou.mybatisplus.generator.config.DataSourceConfig) GlobalConfig(com.baomidou.mybatisplus.generator.config.GlobalConfig) MySqlTypeConvert(com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert) InjectionConfig(com.baomidou.mybatisplus.generator.InjectionConfig) PackageConfig(com.baomidou.mybatisplus.generator.config.PackageConfig) StrategyConfig(com.baomidou.mybatisplus.generator.config.StrategyConfig) AutoGenerator(com.baomidou.mybatisplus.generator.AutoGenerator)

Example 4 with DbColumnType

use of com.baomidou.mybatisplus.generator.config.rules.DbColumnType in project matecloud by matevip.

the class GeneratorUtil method execute.

public static void execute(CodeConfig config) {
    AutoGenerator mpg = new AutoGenerator();
    // 全局配置
    GlobalConfig gc = new GlobalConfig();
    gc.setOutputDir(config.getOutputDir());
    gc.setFileOverride(true);
    // ActiveRecord特性
    gc.setActiveRecord(false);
    // XML ResultMap
    gc.setBaseResultMap(true);
    // XML columList
    gc.setBaseColumnList(true);
    gc.setEnableCache(false);
    // 自动打开输出目录
    gc.setOpen(false);
    gc.setAuthor("pangu");
    gc.setSwagger2(true);
    // 主键策略
    gc.setIdType(IdType.AUTO);
    // 自定义文件命名,注意 %s 会自动填充表实体属性!
    gc.setServiceName("I%sService");
    gc.setServiceImplName("%sServiceImpl");
    gc.setMapperName("%sMapper");
    gc.setXmlName("%sMapper");
    mpg.setGlobalConfig(gc);
    // 数据源配置
    DataSourceConfig dsc = new DataSourceConfig();
    dsc.setDbType(config.getDbType());
    dsc.setDriverName(config.getDriverName());
    dsc.setUrl(config.getUrl());
    dsc.setUsername(config.getUsername());
    dsc.setPassword(config.getPassword());
    dsc.setTypeConvert(new MySqlTypeConvert() {

        // 自定义数据库表字段类型转换【可选】
        @Override
        public DbColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
            // 将数据库中datetime转换成date
            if (fieldType.toLowerCase().contains("datetime")) {
                return DbColumnType.LOCAL_DATE_TIME;
            }
            return (DbColumnType) super.processTypeConvert(globalConfig, fieldType);
        }
    });
    mpg.setDataSource(dsc);
    // 包配置
    PackageConfig pc = new PackageConfig();
    // 此处设置包名,需要自定义
    pc.setParent(config.getPackageName());
    pc.setXml("mapper");
    mpg.setPackageInfo(pc);
    // // 自定义配置
    // InjectionConfig cfg = new InjectionConfig() {
    // @Override
    // public void initMap() {
    // // to do nothing
    // }
    // };
    // 如果模板引擎是 freemarker
    // String templatePath = "/templates/mapper.xml.ftl";
    // 如果模板引擎是 velocity
    String templatePath = "/templates/mapper.xml.vm";
    // 自定义输出配置
    // List<FileOutConfig> focList = new ArrayList<>();
    // // 自定义配置会被优先输出
    // focList.add(new FileOutConfig(templatePath) {
    // @Override
    // public String outputFile(TableInfo tableInfo) {
    // // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
    // return config.getOutputDir() + "/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("调用默认方法创建的目录");
    // return false;
    // }
    // });
    // */
    // cfg.setFileOutConfigList(focList);
    // mpg.setCfg(cfg);
    // 配置模板
    // TemplateConfig templateConfig = new TemplateConfig();
    // 配置自定义输出模板
    // 指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
    // templateConfig.setEntity("templates/entity2.java");
    // templateConfig.setService();
    // templateConfig.setController();
    // templateConfig.setXml("mapper");
    // mpg.setTemplate(templateConfig);
    // 策略配置
    StrategyConfig strategy = new StrategyConfig();
    strategy.setNaming(NamingStrategy.underline_to_camel);
    strategy.setColumnNaming(NamingStrategy.underline_to_camel);
    strategy.setSuperEntityClass("vip.mate.core.database.entity.BaseEntity");
    strategy.setEntityLombokModel(true);
    strategy.setRestControllerStyle(true);
    // 公共父类
    strategy.setSuperControllerClass("vip.mate.core.web.controller.BaseController");
    // 写于父类中的公共字段
    strategy.setSuperEntityColumns("id");
    strategy.setInclude(config.getTableName().split(","));
    strategy.setControllerMappingHyphenStyle(true);
    strategy.setTablePrefix(config.getPrefix());
    // strategy.setTablePrefix(pc.getModuleName() + "_");
    mpg.setStrategy(strategy);
    mpg.setTemplateEngine(new VelocityTemplateEngine());
    mpg.execute();
}
Also used : DbColumnType(com.baomidou.mybatisplus.generator.config.rules.DbColumnType) VelocityTemplateEngine(com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine) MySqlTypeConvert(com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert) AutoGenerator(com.baomidou.mybatisplus.generator.AutoGenerator)

Example 5 with DbColumnType

use of com.baomidou.mybatisplus.generator.config.rules.DbColumnType in project springboot-cli by liangqiding.

the class GenerationUtils method main.

public static void main(String[] args) {
    boolean fileOverride = false;
    GlobalConfig config = new GlobalConfig();
    String path = System.getProperty("user.dir");
    config.setActiveRecord(true).setAuthor("ding").setOutputDir(path + "\\src\\main\\java\\").setBaseResultMap(true).setBaseColumnList(true).setFileOverride(fileOverride);
    // ****************************** resource ***************************************
    DataSourceConfig dataSourceConfig = new DataSourceConfig();
    dataSourceConfig.setDbType(DbType.MYSQL).setUrl(DB_URL).setUsername(USERNAME).setPassword(PASSWORD).setDriverName(DRIVER_NAME).setTypeConvert(new MySqlTypeConvert() {

        @Override
        public DbColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
            System.out.println("转换类型:" + fieldType);
            // tinyint转换成Boolean
            if (fieldType.toLowerCase().contains("tinyint")) {
                return DbColumnType.BOOLEAN;
            }
            if (fieldType.toLowerCase().contains("datetime")) {
                return DbColumnType.DATE;
            }
            return (DbColumnType) super.processTypeConvert(globalConfig, fieldType);
        }
    });
    // ****************************** Policy configuration ******************************************************
    List<TableFill> tableFillList = new ArrayList<>();
    tableFillList.add(new TableFill("gmt_modified", FieldFill.INSERT_UPDATE));
    tableFillList.add(new TableFill("modifier_id", FieldFill.INSERT_UPDATE));
    tableFillList.add(new TableFill("creator_id", FieldFill.INSERT));
    tableFillList.add(new TableFill("gmt_create", FieldFill.INSERT));
    tableFillList.add(new TableFill("available_flag", FieldFill.INSERT));
    tableFillList.add(new TableFill("deleted_flag", FieldFill.INSERT));
    tableFillList.add(new TableFill("sync_flag", FieldFill.INSERT));
    StrategyConfig strategyConfig = new StrategyConfig();
    strategyConfig.setCapitalMode(true).setEntityLombokModel(true).setNaming(NamingStrategy.underline_to_camel).setTableFillList(tableFillList).setInclude(TABLE_NAME);
    new AutoGenerator().setGlobalConfig(config).setDataSource(dataSourceConfig).setStrategy(strategyConfig).setPackageInfo(new PackageConfig().setParent(PACKAGE).setController("controller").setEntity("domain").setMapper("dao").setXml("dao")).setTemplate(new TemplateConfig().setServiceImpl("templates/serviceImpl.java")).execute();
}
Also used : DbColumnType(com.baomidou.mybatisplus.generator.config.rules.DbColumnType) ArrayList(java.util.ArrayList) MySqlTypeConvert(com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert) TableFill(com.baomidou.mybatisplus.generator.config.po.TableFill) AutoGenerator(com.baomidou.mybatisplus.generator.AutoGenerator)

Aggregations

AutoGenerator (com.baomidou.mybatisplus.generator.AutoGenerator)6 MySqlTypeConvert (com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert)6 DbColumnType (com.baomidou.mybatisplus.generator.config.rules.DbColumnType)6 InjectionConfig (com.baomidou.mybatisplus.generator.InjectionConfig)2 DataSourceConfig (com.baomidou.mybatisplus.generator.config.DataSourceConfig)2 GlobalConfig (com.baomidou.mybatisplus.generator.config.GlobalConfig)2 PackageConfig (com.baomidou.mybatisplus.generator.config.PackageConfig)2 StrategyConfig (com.baomidou.mybatisplus.generator.config.StrategyConfig)2 TableFill (com.baomidou.mybatisplus.generator.config.po.TableFill)2 ArrayList (java.util.ArrayList)2 HashMap (java.util.HashMap)2 VelocityTemplateEngine (com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine)1 File (java.io.File)1 Test (org.junit.Test)1