package com.dev;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
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.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
/**
* Created by ehomeud on 2017/4/26.
*/
public class CustomGeneratorMysql {
@SuppressWarnings("resource")
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;
}
}
scanner.close();
throw new MybatisPlusException("请输入正确的" + tip + "!");
}
@SuppressWarnings("deprecation")
public static void main(String[] args) throws InterruptedException {
// GlobalConfig g = new GlobalConfig();
AutoGenerator mpg = new AutoGenerator();
String dir = "/Users/algernonking/git/zcdevmgr/src/main";
// 全局配置
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir(dir + "/java/");
gc.setOpen(true);// 生成后打开文件夹
gc.setFileOverride(true);
gc.setActiveRecord(true);
gc.setEnableCache(false);// XML 二级缓存
gc.setBaseResultMap(true);// XML ResultMap
gc.setBaseColumnList(false);// XML columList
gc.setAuthor("algernonking");
gc.setFileOverride(true);// 是否覆盖文件
gc.setDateType(DateType.ONLY_DATE);
// 自定义文件命名,注意 %s 会自动填充表实体属性!
gc.setMapperName("%sMapper");
gc.setServiceName("I%sService");
gc.setServiceImplName("%sServiceImpl");
gc.setControllerName("%sController");
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL);
dsc.setTypeConvert(new MySqlTypeConvert() {
// 自定义数据库表字段类型转换【可选】
@SuppressWarnings("unused")
public DbColumnType processTypeConvert(String fieldType) {
System.out.println("转换类型:" + fieldType);
return processTypeConvert(fieldType);
}
});
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUrl("jdbc:mysql://39.105.191.22:3306/dt?useUnicode=true&characterEncoding=utf8&useSSL=false");
dsc.setUsername("root");
dsc.setPassword("root_pwd");
mpg.setDataSource(dsc);
// 策略配置
// 公共字段
List<TableFill> tableFillList = new ArrayList<>();
tableFillList.add(new TableFill("dr", FieldFill.INSERT));
tableFillList.add(new TableFill("create_by", FieldFill.INSERT));
tableFillList.add(new TableFill("create_time", FieldFill.INSERT));
tableFillList.add(new TableFill("update_by", FieldFill.INSERT_UPDATE));
tableFillList.add(new TableFill("update_time", FieldFill.INSERT_UPDATE));
StrategyConfig strategy = new StrategyConfig();
// strategy.setLogicDeleteFieldName("DR");
strategy.setSuperControllerClass("com.dt.core.common.base.BaseController");
strategy.entityTableFieldAnnotationEnable(true);
// strategy.setTablePrefix(new String[] { "tlog_", "tsys_" });// 此处可以修改为您的表前缀
strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
// "","sys_qud_qux"
// "res_attr_value","res_class","res_class_attrs"
// "res_attr_value","res_class_attrs"
strategy.setInclude(new String[] { "ops_node_infosys" }); // 需要生成的表
// strategy.setInclude(scanner("表名"));
strategy.setTableFillList(tableFillList);
strategy.setSuperEntityClass("com.dt.core.common.base.BaseModel");
strategy.setSuperEntityColumns("dr", "create_by", "create_time", "update_by", "update_time");
mpg.setStrategy(strategy);
// 包配置
String busRoute = "ops";
PackageConfig pc = new PackageConfig();
pc.setParent("com.dt.module");
pc.setModuleName(busRoute);
pc.setXml(null);
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");
map.put("dt_api", "/api");
this.setMap(map);
}
};
List<FileOutConfig> focList = new ArrayList<FileOutConfig>();
// 调整 xml 生成目录演示
focList.add(new FileOutConfig("template/mapper.xml.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return dir + "/resources/mybatis/" + busRoute + "/" + tableInfo.getMapperName() + ".xml";
}
});
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);
mpg.setPackageInfo(pc);
// 关闭原来的mapper文件
TemplateConfig tc = new TemplateConfig();
tc.setXml(null);
tc.setController("/template/controller.java.vm");
tc.setEntity("/template/entity.java.vm");
tc.setMapper("/template/mapper.java.vm");
tc.setService("/template/service.java.vm");
tc.setServiceImpl("/template/serviceImpl.java.vm");
mpg.setTemplate(tc);
// 执行生成
mpg.execute();
System.err.println(mpg.getCfg().getMap().get("abc"));
}
}
最近下载更多
date122 LV9
9月11日
code_loading LV5
9月9日
285443037 LV1
7月17日
woyaonao LV1
6月10日
刘孟飞 LV22
5月24日
fantesy LV17
3月24日
微信网友_7371218154688512 LV4
2月5日
a562571298 LV8
1月4日
LoveSummer LV6
2024年10月31日
yyh1252 LV8
2024年8月12日
最近浏览更多
筱洋1616 LV9
11月2日
date122 LV9
9月11日
code_loading LV5
9月9日
285443037 LV1
7月17日
woyaonao LV1
6月10日
刘孟飞 LV22
5月24日
chengguo123
4月2日
暂无贡献等级
fantesy LV17
3月24日
docnnxxy688
3月22日
暂无贡献等级
1252590909 LV2
3月17日

