1 package com.czf.coupon; 2 3 import com.baomidou.mybatisplus.annotation.DbType; 4 import com.baomidou.mybatisplus.generator.AutoGenerator; 5 import com.baomidou.mybatisplus.generator.config.*; 6 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; 7 8 /** 9 * @Author chenzhanfan 10 * @Date 2021/8/11 11 * @Description 12 */ 13 public class CodeGenerator { 14 public static void main(String[] args) { 15 16 String moduleName = ""; //模块名称 17 String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC"; 18 String Driver = "com.mysql.cj.jdbc.Driver"; 19 String userName = "root"; 20 String password = "3118000832"; 21 String include = "pms_brand,pms_product,pms_product_attribute,pms_product_attribute_category," + 22 "pms_product_attribute_value,pms_product_category,ums_admin,ums_admin_permission_relation," + 23 "ums_admin_role_relation,ums_permission,ums_role,ums_role_permission_relation"; //数据库表名 24 String parentPackage = "com.czf.coupon"; //父包包名 25 boolean onlyEntity = true; //是否只生成实体类 26 // 代码生成器 27 AutoGenerator mpg = new AutoGenerator(); 28 29 // 全局配置 30 GlobalConfig gc = new GlobalConfig(); 31 String projectPath = System.getProperty("user.dir"); //获得项目名 32 gc.setOutputDir(projectPath + "/" + moduleName + "/src/main/java"); //如果需要区分模块,在此添加模块名 33 gc.setAuthor("chenzhanfan"); 34 gc.setOpen(false);//生成后是否打开资源管理器 35 gc.setFileOverride(false); //重新生成时文件是否覆盖 36 gc.setServiceName("%sService"); //去掉Service接口的首字母I 37 // gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型 38 gc.setSwagger2(true); //实体属性 Swagger2 注解 39 mpg.setGlobalConfig(gc); 40 41 // 数据源配置 42 DataSourceConfig dsc = new DataSourceConfig(); 43 dsc.setUrl(url); 44 // dsc.setSchemaName("public"); 45 dsc.setDriverName(Driver); 46 dsc.setUsername(userName); 47 dsc.setPassword(password); 48 dsc.setDbType(DbType.MYSQL); 49 mpg.setDataSource(dsc); 50 51 /** 52 * 输出模板,如果按照官方原生的可以不配置,也可以配置自定义的模板 53 */ 54 TemplateConfig templateConfig = new TemplateConfig(); 55 // 配置自定义输出模板 56 //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别,默认vm,xml不输出 57 templateConfig.setEntity("templates/entity.java"); 58 if (onlyEntity) { 59 templateConfig.setService(null); 60 templateConfig.setServiceImpl(null); 61 templateConfig.setController(null); 62 templateConfig.setMapper(null); 63 templateConfig.setXml(null); 64 } else { 65 templateConfig.setService("templates/service.java"); 66 templateConfig.setServiceImpl("templates/serviceImpl.java"); 67 templateConfig.setController("templates/controller.java"); 68 templateConfig.setMapper("templates/mapper.java"); 69 templateConfig.setXml(null); 70 } 71 mpg.setTemplate(templateConfig); 72 73 // 包配置 74 PackageConfig pc = new PackageConfig(); 75 pc.setModuleName(null); //模块名 76 pc.setParent(parentPackage); 77 pc.setEntity("entity"); 78 pc.setController("controller"); 79 pc.setMapper("mapper"); 80 pc.setService("service"); 81 82 mpg.setPackageInfo(pc); 83 84 // 策略配置 85 StrategyConfig strategy = new StrategyConfig(); 86 strategy.setInclude((include).split(","));//表名,多个英文逗号分割 87 strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略 88 strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略 89 strategy.setEntityLombokModel(false);// lombok 模型 @Accessors(chain = true) setter链式操作 90 strategy.setRestControllerStyle(true);//restful api风格控制器 91 strategy.setControllerMappingHyphenStyle(true);//url中驼峰转连字符 92 strategy.setTablePrefix(pc.getModuleName() + "_");//生成实体时去掉表前缀 93 mpg.setStrategy(strategy); 94 mpg.execute(); 95 } 96 }