MyBatis Plus Generator 配置文件介绍及使用
package com.xiaopengwei;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
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.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
/**
* <p>
* MyBatis Plus Generator 配置执行类示例
* </p>
*
* @author
* @since 2019-04-07
*/
public class MyBatisPlusGenerator {
/**
* <p>
* 读取控制台内容
* </p>
*/
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("请输入" + tip + ":");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotEmpty(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}
public static void main(String[] args) {
// 代码生成器
AutoGenerator autoGenerator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
String projectPath = System.getProperty("");
globalConfig.setOutputDir(projectPath + "/src/main/java");
globalConfig.setAuthor("Xiao Pengwei");
globalConfig.setOpen(false);
autoGenerator.setGlobalConfig(globalConfig);
// 数据源配置 需配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1/数据库名?serverTimezone=UTC");
// ("public");
dataSourceConfig.setDriverName("");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("密码");
autoGenerator.setDataSource(dataSourceConfig);
// 生成包配置
PackageConfig packageConfig = new PackageConfig();
//如果需要手动输入模块名
//(scanner("模块名"));
packageConfig.setModuleName("ssmp");
packageConfig.setParent("");
autoGenerator.setPackageInfo(packageConfig);
// 自定义配置
InjectionConfig injectionConfig = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
// 如果模板引擎是 freemarker
String templatePath = "/templates/";
// 自定义输出配置
List<FileOutConfig> focList = new ArrayList<>();
// 自定义配置会被优先输出
focList.add(new FileOutConfig(templatePath) {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输出文件名
return projectPath + "/src/main/resources/mapper/" + packageConfig.getModuleName()
+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
injectionConfig.setFileOutConfigList(focList);
autoGenerator.setCfg(injectionConfig);
// 配置模板
TemplateConfig templateConfig = new TemplateConfig();
// 配置自定义输出模板
//指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
// ("templates/");
// ();
// ();
templateConfig.setXml(null);
autoGenerator.setTemplate(templateConfig);
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
// ("");
strategyConfig.setEntityLombokModel(true);
strategyConfig.setRestControllerStyle(true);
// ("");
// 如果 setInclude() 不加参数, 会自定查找所有表
// 如需要制定单个表, 需填写参数如: ("user_info);
strategyConfig.setInclude();
// ("id");
strategyConfig.setControllerMappingHyphenStyle(true);
//自动将数据库中表名为 user_info 格式的专为 UserInfo 命名
strategyConfig.setTablePrefix(packageConfig.getModuleName() + "_");
autoGenerator.setStrategy(strategyConfig);
autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());
System.out.println("===================== MyBatis Plus Generator ==================");
autoGenerator.execute();
System.out.println("================= MyBatis Plus Generator Execute Complete ==================");
}
}