mybatis-plus代码生成

时间:2025-04-03 08:43:35
package com.cd.selftestcode; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; class SelfTestCodeApplicationTests { // DriverName(""); public static final String DRIVAER_NAME = ""; // tUsername("root"); public static final String USER_NAME = "root"; // Password("mysql"); public static final String PSW = "mysql"; // Url public static final String URL = "jdbc:mysql://192.168.0.108:13306/database"; //最*包名,生成的所有的*包名 public static final String PARENT_PACKAGE = ""; //controller包包 public static final String CONTROLLER_PACKAGE = "controller"; //service包名 public static final String SERVICE_PACKAGE = "service"; //包名 public static final String SERVICE_IMPL_PACKAGE = ""; //mapper包名 public static final String MAPPER_PACKAGE = "mapper"; //entity包名 public static final String ENTITY_PACKAGE = "po"; //xml包名 public static final String XML_PACKAGE = "xml"; //生成文件目录 public static final String OUT_FILE_PATH="D:\\tempProject\\src\\main\\java"; // 开启swagger2模式 public static final Boolean SWAGGER_ENABLE = true; // 是否覆盖已有文件 public static final Boolean RECOVER_ENABLE = true; //DTO名字格式 public static final String DTO_NAME_FORMAT = "%sDTO"; public static final String DTO_BASE = PARENT_PACKAGE + "."; //PO名字格式 public static final String PO_NAME_FORMAT = "%sPO"; public static final String PO_BASE = PARENT_PACKAGE + "."; //query名字格式 public static final String QUERY_NAME_FORMAT = "%sQuery"; public static final String QUERYO_BASE = PARENT_PACKAGE + ".BaseQuery"; //数据库中的表名 public static final String[] TABLE_NAMES = {"表名1","表名2"}; /** * 生成DTO\PO\QUERY以及service\controller\mybatisplus\mapper\代码 */ public static void main(String[] args) { //生成DTO generatorMybatisAndDTO(); //生成query generatorMybatisAndQuery(); //生成po和mapper generatorMybatisAndPO(); } /** * 数据源配置 */ private static DataSourceConfig dataSource() { // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setDbType(DbType.MYSQL); // mysql生成用 dsc.setDriverName(DRIVAER_NAME); dsc.setUsername(USER_NAME); dsc.setPassword(PSW); dsc.setUrl(URL); return dsc; } /** * 包名配置 */ private static PackageConfig packageConfig() { // 包配置 PackageConfig pc = new PackageConfig(); pc.setParent(PARENT_PACKAGE); // 父包名 pc.setController(CONTROLLER_PACKAGE); // Controller包名 pc.setService(SERVICE_PACKAGE); // Service包名 pc.setServiceImpl(SERVICE_IMPL_PACKAGE); // Service Impl包名 pc.setMapper(MAPPER_PACKAGE); // Mapper包名 pc.setEntity(ENTITY_PACKAGE); // Entity包名 pc.setXml(XML_PACKAGE); // xml包名 return pc; } /** * 全局配置 */ private static GlobalConfig globalConfig() { // 全局配置 GlobalConfig gc = new GlobalConfig(); gc.setSwagger2(SWAGGER_ENABLE); // 开启swagger2模式 gc.setOutputDir(OUT_FILE_PATH); // 生成文件存放的位置 gc.setFileOverride(RECOVER_ENABLE); // 是否覆盖已有文件 gc.setActiveRecord(false); // 开启ActiveRecord模式,默认false gc.setEnableCache(false); // 是否在xml中添加二级缓存配置,默认false gc.setBaseResultMap(true); // 开启BaseResultMap(通用查询映射结果) gc.setBaseColumnList(true); // 开启baseColumnList(通用查询结果列) gc.setAuthor("cd"); // 开发人员 // 自定义文件命名,注意 %s 会自动填充表实体属性(各层文件名称方式,例如:%sAction生成UserAction, %s为占位符) gc.setControllerName("%sController"); gc.setServiceName("%sService"); gc.setServiceImplName("%sServiceImpl"); gc.setMapperName("%sMapper"); gc.setXmlName("%sMapper"); gc.setEntityName("%sPO"); return gc; } /** * 策略配置 */ private static StrategyConfig strategy() { StrategyConfig strategy = new StrategyConfig(); strategy.setEntityBooleanColumnRemoveIsPrefix(true);//boolean类型去掉is开头 strategy.setLogicDeleteFieldName("delete_flag"); strategy.setTablePrefix(""); // 去掉表名前缀 strategy.setNaming(NamingStrategy.underline_to_camel); // 表名生成策略(underline_to_camel:下划线转驼峰命名) strategy.setInclude(TABLE_NAMES); // 表名 strategy.setColumnNaming(NamingStrategy.underline_to_camel); strategy.setSuperControllerClass(PARENT_PACKAGE + ".");// 自定义继承的Controller类全称,带包名 strategy.setSuperServiceClass(PARENT_PACKAGE+"."); strategy.setSuperEntityClass(PARENT_PACKAGE + ".");// 自定义继承的实体类全称,带包名 strategy.setEntityLombokModel(true); // 实体类是否为lombok模型(默认false) strategy.setRestControllerStyle(true); // 生成 <code>@RestController</code> 控制器 strategy.setSuperMapperClass(""); // 自定义继承的Mapper类全称,带包名 strategy.setChainModel(true); //生成build代码 return strategy; } private static void generatorMybatisAndPO() { // 生成器 AutoGenerator mpg = new AutoGenerator(); // 包配置 mpg.setPackageInfo(packageConfig().setEntity("po")); // 全局配置 mpg.setGlobalConfig(globalConfig().setEntityName(PO_NAME_FORMAT)); // 数据源配置 mpg.setDataSource(dataSource()); // 策略配置 mpg.setStrategy(strategy().setSuperEntityClass(PO_BASE)); // 执行生成 mpg.execute(); } private static void generatorMybatisAndQuery() { // 生成器 AutoGenerator mpg = new AutoGenerator(); // 包配置 mpg.setPackageInfo(packageConfig().setEntity("query")); // 全局配置 mpg.setGlobalConfig(globalConfig().setEntityName(QUERY_NAME_FORMAT)); // 数据源配置 mpg.setDataSource(dataSource()); // 策略配置 mpg.setStrategy(strategy().setSuperEntityClass(QUERYO_BASE).setChainModel(true).setEntityLombokModel(false).setLogicDeleteFieldName(null)); // 执行生成 mpg.execute(); } private static void generatorMybatisAndDTO() { // 生成器 AutoGenerator mpg = new AutoGenerator(); // 包配置 mpg.setPackageInfo(packageConfig().setEntity("dto")); // 全局配置 mpg.setGlobalConfig(globalConfig().setEntityName(DTO_NAME_FORMAT)); // 数据源配置 mpg.setDataSource(dataSource()); // 策略配置 实体基类 建造者模式 lombok是否启用 逻辑删除字段 mpg.setStrategy(strategy().setSuperEntityClass(DTO_BASE).setChainModel(true).setEntityLombokModel(false).setLogicDeleteFieldName(null)); // 执行生成 mpg.execute(); } }