导入对应的jar包,这就不用多说了
package com.app.appapi.generatorcode;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
/**
* 自动生成mybatisplus的相关代码
*
* @author auther
*/
public class GeneratorCodeConfig {
/**
* mysql用户名
*/
private static String[] tableNames = {
"app_user_main"
};
private static String url = "";
private static String driverName = "com.mysql.cj.jdbc.Driver";
private static String userName = "";
private static String pwd = "";
// /**
// * sqlserver用户名
// */
// private static String[] tableNames = {
// "Test_RegLog"
// };
// private static String url = "";
// private static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
// private static String userName = "";
// private static String pwd = "";
/**
* 指定代码生成人
*/
private static String author = "auther";
/**
* 指定模块名称
*/
private static String moduleName = "core.push";
/**
* 指定模块路径(java代码)
*/
private static String modulePath = "com.app.appapi";
/**
* 指定Dao模块路径(对应common哪个数据源,默认:db1)
*/
private static String daoModulePath = "dao";
/**
* RUN THIS
*/
public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
//指定代码生成人
gc.setAuthor(author);
//生成完毕后,是否默认打开生成目录
gc.setOpen(true);
gc.setFileOverride(true);
gc.setSwagger2(false);
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl(url);
dsc.setDriverName(driverName);
dsc.setUsername(userName);
dsc.setPassword(pwd);
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
//指定模块名称
pc.setModuleName(moduleName);
pc.setMapper(daoModulePath);
//指定模块路径
pc.setParent(modulePath);
mpg.setPackageInfo(pc);
// 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
List<FileOutConfig> focList = new ArrayList<>();
focList.add(new FileOutConfig("/templates/mybatis/mapper.xml.ftl") {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输入文件名称
return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);
mpg.setTemplate(new TemplateConfig().setXml(null));
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//strategy.setSuperEntityClass("com.baomidou.mybatisplus.samples.generator.common.BaseEntity");
strategy.setEntityLombokModel(true);
// strategy.setSuperControllerClass("com.baomidou.mybatisplus.samples.generator.common.BaseController");
//需要生成的表
strategy.setInclude(tableNames);
strategy.setControllerMappingHyphenStyle(true);
strategy.setTablePrefix(pc.getModuleName() + "_");
mpg.setStrategy(strategy);
// 选择 freemarker 引擎需要指定如下加,注意 pom 依赖必须有!
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
// 自定义模板配置,可以 copy 源码 mybatis-plus/src/main/resources/templates 下面内容修改,
// 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称
TemplateConfig tc = new TemplateConfig();
tc.setController("templates/mybatis/controller.java");
tc.setEntity("templates/mybatis/entity.java");
tc.setMapper("templates/mybatis/mapper.java");
tc.setService("templates/mybatis/service.java");
tc.setServiceImpl("templates/mybatis/serviceImpl.java");
mpg.setTemplate(tc);
mpg.execute();
}
}