暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MybatisPlus自动生成代码

读读书写写代码 2021-09-26
809

目标

MybatisPlus的AutoGenerator自动生成的代码不太符合大家的规范,主要是xml文件放在src/main/java下,通常的使用习惯是把xml文件放在src/main/resource下面。同时,在开发过程中可能存在数据库字段的变更,需要重新生成特定代码,为了不覆盖已经修改过的文件,推荐把xml放在src/main/resources/agxml下面。 插件提供的默认配置不太方便使用,经过分析,找到了一种方式,记录下来备用,不多说,直接上代码。

代码

/**
* 用mybatisplus的autogenerate自动生成代码
*/
package study.mybatisplus.autogenerate;

import java.util.Map;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.ConstVal;
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.builder.ConfigBuilder;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

public class MybatisPlusCodeGenerator {

public static void main(String[] args) {

String projectRoot = System.getProperty("user.dir");
String srcPath = projectRoot + "/src/main/java/";

AutoGenerator autoGenerator = new AutoGenerator();

GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(srcPath);

autoGenerator.setGlobalConfig(globalConfig);

DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("");



autoGenerator.setDataSource(dataSourceConfig);

PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("study.yqwu.cachetest.business");

用这种方式获取默认配置
ConfigBuilder configBuilder = new ConfigBuilder(packageConfig, dataSourceConfig, null, null, globalConfig);
Map<String, String> pathInfo = configBuilder.getPathInfo();
修改xml配置
pathInfo.put(ConstVal.XML_PATH, projectRoot + "/src/main/resources/agxml");

packageConfig.setPathInfo(pathInfo);
autoGenerator.setPackageInfo(packageConfig);

StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setSkipView(true);
strategy.setRestControllerStyle(true);
strategy.setControllerMappingHyphenStyle(true);
strategy.setTablePrefix( "t_");
autoGenerator.setStrategy(strategy);

autoGenerator.execute();

}

}

说明

代码的核心就是修改PackageConfig的pathInfo属性,里面有6个配置,定义在ConstVal
接口中以_PATH
结束的变量里。每个单独设置比较麻烦,就是用了自带的ConfigBuilder
先生成默认配置,然后修改XML_PATH配置。


文章转载自读读书写写代码,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论