JAvaコードジェネレータ|ツールクラス
6946 ワード
package com.finance.utils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
*
*
* @author WangHao
*/
public class MpGenerator {
/**
*
* MySQL
*
* main main , ( main )
*/
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
// freemarker , Veloctiy
// mpg.setTemplateEngine(new FreemarkerTemplateEngine());
//
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir("E:/MpGenerator/");
gc.setFileOverride(true);
gc.setActiveRecord(true);// ActiveRecord false
gc.setEnableCache(false);// XML
gc.setBaseResultMap(true);// XML ResultMap
gc.setBaseColumnList(false);// XML columList
// .setKotlin(true) kotlin
gc.setAuthor("WangHao");
// , %s !--
// gc.setMapperName("%sDao");
// gc.setXmlName("%sDao");
// gc.setServiceName("MP%sService");
// gc.setServiceImplName("%sServiceDiy");
// gc.setControllerName("%sAction");
mpg.setGlobalConfig(gc);
//
DataSourceConfig dsc = new DataSourceConfig();
// dsc.setDbType(DbType.MYSQL);
dsc.setDbType(DbType.SQL_SERVER);
dsc.setTypeConvert(new MySqlTypeConvert(){
// 【 】
@Override
public DbColumnType processTypeConvert(String fieldType) {
System.out.println(" :" + fieldType);
// !!processTypeConvert , 、 。
return super.processTypeConvert(fieldType);
}
});
// dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setDriverName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
/* dsc.setUsername("sc");
dsc.setPassword("Djyt17877");
dsc.setUrl("jdbc:mysql://rm-uf64z8oz61r13j1142o.mysql.rds.aliyuncs.com:3306/skate_shopping?useUnicode=true&characterEncoding=utf8"); */
dsc.setUsername("web_test");
dsc.setPassword("9158com");
dsc.setUrl("jdbc:sqlserver://61.164.160.85:3434;DatabaseName=FinanceTiange3");
mpg.setDataSource(dsc);
//
StrategyConfig strategy = new StrategyConfig();
//strategy.setCapitalMode(true);// ORACLE ORACLE / ,
// strategy.setTablePrefix(new String[] { "f_"});// , , ,
strategy.setNaming(NamingStrategy.underline_to_camel);// ,
//strategy.setInclude(new String[]{"t_order", "t_order_detail"}); //
strategy.setInclude(new String[] { "PhoneCodeRecord" });
// strategy.setExclude(new String[]{"test"}); //
//
// strategy.setSuperEntityClass("com.baomidou.demo.TestEntity");
// ,
// strategy.setSuperEntityColumns(new String[] { "test_id", "age" });
// mapper
// strategy.setSuperMapperClass("com.baomidou.demo.TestMapper");
// service
// strategy.setSuperServiceClass("com.baomidou.demo.TestService");
// service
// strategy.setSuperServiceImplClass("com.baomidou.demo.TestServiceImpl");
// controller
// strategy.setSuperControllerClass("com.baomidou.demo.TestController");
// 【 】 ( false)
// public static final String ID = "test_id";
strategy.setEntityColumnConstant(true);
// 【 】 ( false) set ,
// public User setName(String name) {this.name = name; return this;}
strategy.setEntityBuilderModel(true);
mpg.setStrategy(strategy);
//
PackageConfig pc = new PackageConfig();
pc.setParent("com");
pc.setModuleName("finance");
mpg.setPackageInfo(pc);
// , VM cfg.abc 【 】
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
Map map = new HashMap();
map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");
this.setMap(map);
}
};
// xxList.jsp
List focList = new ArrayList();
//jsp
/*
focList.add(new FileOutConfig("/template/list.jsp.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
//
return "D://my_" + tableInfo.getEntityName() + ".jsp";
}
});
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);*/
// xml xml mapper
focList.add(new FileOutConfig("/templates/mapper.xml.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return "E:/MpGenerator/" + tableInfo.getEntityName() + "Mapper.xml";
}
});
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);
// xml ,
TemplateConfig tc = new TemplateConfig();
tc.setXml(null);
mpg.setTemplate(tc);
// , copy mybatis-plus/src/main/resources/templates ,
// src/main/resources/templates , ,
// TemplateConfig tc = new TemplateConfig();
// tc.setController("...");
// tc.setEntity("...");
// tc.setMapper("...");
// tc.setXml("...");
// tc.setService("...");
// tc.setServiceImpl("...");
// OR Null 。
// mpg.setTemplate(tc);
//
mpg.execute();
// 【 】
System.err.println(mpg.getCfg().getMap().get("abc"));
}
}