目标
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




