1 package com.raise3d.MyGenerator; 2 3 import com.baomidou.mybatisplus.annotation.DbType; 4 import com.baomidou.mybatisplus.annotation.IdType; 5 import com.baomidou.mybatisplus.generator.AutoGenerator; 6 import com.baomidou.mybatisplus.generator.config.DataSourceConfig; 7 import com.baomidou.mybatisplus.generator.config.GlobalConfig; 8 import com.baomidou.mybatisplus.generator.config.PackageConfig; 9 import com.baomidou.mybatisplus.generator.config.StrategyConfig; 10 import com.baomidou.mybatisplus.generator.config.rules.DateType; 11 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; 12 13 /** 14 * 代码生成器工具类(测试) 15 * 16 * 3.x生成的代码中,不含@TableField("name") 17 * 官方人员的说法是: 18 * @miemie 【成员】 19 * 根据规则生成的entity不再会出现多余的注解 20 * 21 * @author Wenyi Feng 22 * @since 2018-08-31 23 */ 24 public class Utils { 25 26 /** 27 * 执行生成代码 28 */ 29 public static void generateCode() { 30 String packageName = "com.raise3d"; 31 //generateByTables(packageName, "t_student", "t_city", "t_idcard"); 32 generateByTables(packageName, null); 33 } 34 35 private static void generateByTables(String packageName, String... tableNames) { 36 37 // 数据库信息 38 // String dbUrl = "jdbc:mysql://localhost:3306/mybatis-plus?useSSL=true"; 39 String dbUrl = "jdbc:mysql://192.168.0.28:3306/cloud_msg"; 40 DataSourceConfig dataSourceConfig = new DataSourceConfig() 41 .setDbType(DbType.MYSQL) 42 .setUrl(dbUrl) 43 .setUsername("root") 44 // .setPassword("xfsy2017") 45 .setPassword("fuzhi001") 46 .setDriverName("com.mysql.jdbc.Driver") // mysql 5 47 // .setDriverName("com.mysql.cj.jdbc.Driver") // mysql 8 48 /*.setTypeConvert(new MySqlTypeConvert() { 49 @Override 50 public PropertyInfo processTypeConvert(GlobalConfig globalConfig, String fieldType) { 51 //..... 52 // 当发现生成的类型并不能满足你的要求时,可以去这里看,然后重写 53 } 54 })*/ 55 ; 56 57 // 配置 58 GlobalConfig config = new GlobalConfig() 59 .setActiveRecord(false) 60 .setAuthor("Logen.Wang") 61 // .setOutputDir("/Users/fengwenyi/Workspace/file/codeGen") 62 .setOutputDir("d:/codeGen") 63 .setFileOverride(true) 64 .setActiveRecord(true)// 不需要ActiveRecord特性的请改为false 65 .setEnableCache(false)// XML 二级缓存 66 .setBaseResultMap(false)// XML ResultMap 67 .setBaseColumnList(true)// XML columList 68 .setKotlin(false) //是否生成 kotlin 代码 69 // 自定义文件命名,注意 %s 会自动填充表实体属性! 70 .setMapperName("%sDao") 71 .setXmlName("%sMapper") 72 .setServiceName("%sService") 73 .setServiceImplName("%sServiceImpl") 74 .setControllerName("%sController") 75 .setDateType(DateType.ONLY_DATE) //只使用 java.util.date 代替 76 .setIdType(IdType.ID_WORKER) 77 .setSwagger2(false) // model swagger2 78 //.setOpen(true) // 是否打开输出目录 79 ; 80 // if (!serviceNameStartWithI) 81 // config.setServiceName("%sService"); 82 83 84 StrategyConfig strategyConfig = new StrategyConfig() 85 .setCapitalMode(true) // 全局大写命名 ORACLE 注意 86 //.setTablePrefix("t_")// 此处可以修改为您的表前缀(数组) 87 .setNaming(NamingStrategy.underline_to_camel) // 表名生成策略 88 .setInclude(tableNames)//修改替换成你需要的表名,多个表名传数组 89 //.setExclude(new String[]{"test"}) // 排除生成的表 90 .setRestControllerStyle(true) 91 .setControllerMappingHyphenStyle(true) 92 .setEntityLombokModel(true) // lombok实体 93 .setEntityBuilderModel(false) // 【实体】是否为构建者模型(默认 false) 94 .setEntityColumnConstant(false) // 【实体】是否生成字段常量(默认 false)// 可通过常量名获取数据库字段名 // 3.x支持lambda表达式 95 //.setLogicDeleteFieldName("is_delete") // 逻辑删除属性名称 96 .entityTableFieldAnnotationEnable(true) 97 .setColumnNaming(NamingStrategy.nochange) 98 ; 99 100 // 包信息配置101 PackageConfig packageConfig = new PackageConfig()102 .setParent(packageName)103 .setController("controller")104 .setEntity("model")105 .setMapper("dao")106 .setXml("mapper")107 108 /*109 // 共同构建成包名110 .setParent("com.fengwenyi")111 .setModuleName("model")112 */113 ;114 115 // 执行器116 new AutoGenerator()117 .setGlobalConfig(config)118 .setDataSource(dataSourceConfig)119 .setStrategy(strategyConfig)120 .setPackageInfo(packageConfig)121 .execute();122 }123 124 }
启动APP
package com.raise3d.MyGenerator;//import com.baomidou.mybatisplus.annotation.TableField;//import com.baomidou.mybatisplus.annotation.TableId;/** * 代码生成器(测试) * @author Wenyi Feng * @since 2018-08-31 */public class App {// @TableField// @TableId public static void main(String[] args) { Utils.generateCode(); //UtilsV2.generateCode(); }}
mybatis plus 是在18年下半年接触到的一个对mybatis进行封装的框架,具备mybatis原有的属性,在mybatis原有的基础上封装基本的curd操作方法,覆盖了日常数据库的操作,(复杂的sql查询除外),简单易用,此生成器生成了controller、service、serviceImpl、dao、mapper、等文件。