Commit 40bd3b38 by yuwei

项目初始化

parent 53c72c3b
...@@ -16,149 +16,7 @@ public class Generate { ...@@ -16,149 +16,7 @@ public class Generate {
public static void main(String[] args) { public static void main(String[] args) {
// 代码生成器 // 代码生成器
AutoGenerator mpg = new AutoGenerator(); generateByTables("F://code", "factory", "cn.datax.service.data", new String[]{"data_source"});
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = "F://code";
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("yuwei");
// 是否打开输出目录
gc.setOpen(true);
// 是否覆盖已有文件
gc.setFileOverride(true);
// 开启 ActiveRecord 模式
gc.setActiveRecord(false);
// 开启 BaseResultMap
gc.setBaseResultMap(true);
// 开启 baseColumnList
gc.setBaseColumnList(true);
gc.setEntityName("%sEntity");
gc.setMapperName("%sDao");
gc.setXmlName("%sMapper");
gc.setServiceName("%sService");
gc.setServiceImplName("%sServiceImpl");
gc.setControllerName("%sController");
// 实体属性 Swagger2 注解
gc.setSwagger2(false);
// 指定生成的主键的ID类型
gc.setIdType(IdType.ASSIGN_ID);
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/data_cloud?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("1234@abcd");
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("cn.datax.service.data");
// 父包模块名
pc.setModuleName("factory");
pc.setMapper("dao");
mpg.setPackageInfo(pc);
// 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
Map<String, Object> map = new HashMap<>();
map.put("PackageParent", "cn.datax.service.data");
this.setMap(map);
}
};
// 自定义输出配置
List<FileOutConfig> focList = new ArrayList<>();
// 自定义配置会被优先输出
focList.add(new FileOutConfig("/templates/mapper.xml.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
+ "/" + tableInfo.getEntityName().replace("Entity", "Mapper") + StringPool.DOT_XML;
}
});
focList.add(new FileOutConfig("/templates/entity.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return projectPath + "/src/main/java/"+ "cn.datax.service.data".replace(".", File.separator) + File.separator + pc.getModuleName() + "/api/entity/" + tableInfo.getEntityName() + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/mapstruct.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return projectPath + "/src/main/java/"+ "cn.datax.service.data".replace(".", File.separator) + File.separator + pc.getModuleName() + "/mapstruct/" + tableInfo.getEntityName().replace("Entity", "Mapper") + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/dto.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return projectPath + "/src/main/java/"+ "cn.datax.service.data".replace(".", File.separator) + File.separator + pc.getModuleName() + "/api/dto/" + tableInfo.getEntityName().replace("Entity", "Dto") + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/vo.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return projectPath + "/src/main/java/"+ "cn.datax.service.data".replace(".", File.separator) + File.separator + pc.getModuleName() + "/api/vo/" + tableInfo.getEntityName().replace("Entity", "Vo") + StringPool.DOT_JAVA;
}
});
focList.add(new FileOutConfig("/templates/query.java.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return projectPath + "/src/main/java/"+ "cn.datax.service.data".replace(".", File.separator) + File.separator + pc.getModuleName() + "/api/query/" + tableInfo.getEntityName().replace("Entity", "Query") + StringPool.DOT_JAVA;
}
});
/*
cfg.setFileCreate(new IFileCreate() {
@Override
public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
// 判断自定义文件夹是否需要创建
checkDir("调用默认方法创建的目录");
return false;
}
});
*/
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);
// 配置模板
TemplateConfig templateConfig = new TemplateConfig();
// 配置自定义输出模板
//指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
templateConfig.setEntity(null);
templateConfig.setController("templates/controller.java");
templateConfig.setService("templates/service.java");
templateConfig.setServiceImpl("templates/serviceImpl.java");
templateConfig.setMapper("templates/mapper.java");
templateConfig.setXml(null);
mpg.setTemplate(templateConfig);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setSuperEntityClass("cn.datax.common.base.BaseEntity");
// 写于父类中的公共字段
strategy.setSuperEntityColumns(new String[]{"id", "create_time", "create_by", "update_time", "update_by", "status"});
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
// 公共父类
strategy.setSuperControllerClass("cn.datax.common.base.BaseController");
strategy.setSuperServiceClass("cn.datax.common.base.BaseService");
strategy.setSuperServiceImplClass("cn.datax.common.base.BaseServiceImpl");
strategy.setSuperMapperClass("cn.datax.common.base.BaseDao");
strategy.setControllerMappingHyphenStyle(true);
// strategy.setTablePrefix("data_");
// strategy.setInclude(new String[]{"sys_user", "sys_role", "sys_dept", "sys_menu", "sys_post", "sys_user_role", "sys_user_dept", "sys_user_post", "sys_role_menu"});
strategy.setInclude(new String[]{"data_source"});
mpg.setStrategy(strategy);
mpg.setTemplateEngine(new VelocityTemplateEngine());
mpg.execute();
} }
/** /**
...@@ -168,7 +26,7 @@ public class Generate { ...@@ -168,7 +26,7 @@ public class Generate {
* @param parentName 包名 * @param parentName 包名
* @param tableNames 表名 * @param tableNames 表名
*/ */
private void generateByTables(String projectPath,String moduleName, String parentName, List<String> tableNames) { private static void generateByTables(String projectPath,String moduleName, String parentName, String[] tableNames) {
//配置数据源 //配置数据源
DataSourceConfig dataSourceConfig = getDataSourceConfig(); DataSourceConfig dataSourceConfig = getDataSourceConfig();
//全局变量配置 //全局变量配置
...@@ -178,7 +36,7 @@ public class Generate { ...@@ -178,7 +36,7 @@ public class Generate {
// 策略配置 // 策略配置
StrategyConfig strategyConfig = getStrategyConfig(tableNames); StrategyConfig strategyConfig = getStrategyConfig(tableNames);
//自定义配置 //自定义配置
InjectionConfig injectionConfig = getInjectionConfig(moduleName, parentName); InjectionConfig injectionConfig = getInjectionConfig(projectPath, moduleName, parentName);
//配置模板 //配置模板
TemplateConfig templateConfig = getTemplateConfig(); TemplateConfig templateConfig = getTemplateConfig();
//自动生成 //自动生成
...@@ -195,7 +53,7 @@ public class Generate { ...@@ -195,7 +53,7 @@ public class Generate {
* @param injectionConfig 自定义配置 * @param injectionConfig 自定义配置
* @param templateConfig 模板配置 * @param templateConfig 模板配置
*/ */
private void atuoGenerator(DataSourceConfig dataSourceConfig, StrategyConfig strategyConfig, GlobalConfig globalConfig, PackageConfig packageConfig, private static void atuoGenerator(DataSourceConfig dataSourceConfig, StrategyConfig strategyConfig, GlobalConfig globalConfig, PackageConfig packageConfig,
InjectionConfig injectionConfig, TemplateConfig templateConfig) { InjectionConfig injectionConfig, TemplateConfig templateConfig) {
new AutoGenerator() new AutoGenerator()
.setGlobalConfig(globalConfig) .setGlobalConfig(globalConfig)
...@@ -213,7 +71,7 @@ public class Generate { ...@@ -213,7 +71,7 @@ public class Generate {
* *
* @return templateConfig * @return templateConfig
*/ */
private InjectionConfig getInjectionConfig(String moduleName, String parentName) { private static InjectionConfig getInjectionConfig(String projectPath, String moduleName, String parentName) {
InjectionConfig cfg = new InjectionConfig() { InjectionConfig cfg = new InjectionConfig() {
@Override @Override
public void initMap() { public void initMap() {
...@@ -226,37 +84,37 @@ public class Generate { ...@@ -226,37 +84,37 @@ public class Generate {
focList.add(new FileOutConfig("/templates/mapper.xml.vm") { focList.add(new FileOutConfig("/templates/mapper.xml.vm") {
@Override @Override
public String outputFile(TableInfo tableInfo) { public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/resources/mapper/" + tableInfo.getEntityName().replace("Entity", "Mapper") + StringPool.DOT_XML; return projectPath + "/src/main/resources/mapper/" + tableInfo.getEntityName().replace("Entity", "Mapper") + StringPool.DOT_XML;
} }
}); });
focList.add(new FileOutConfig("/templates/entity.java.vm") { focList.add(new FileOutConfig("/templates/entity.java.vm") {
@Override @Override
public String outputFile(TableInfo tableInfo) { public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/entity/" + tableInfo.getEntityName() + StringPool.DOT_JAVA; return projectPath + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/entity/" + tableInfo.getEntityName() + StringPool.DOT_JAVA;
} }
}); });
focList.add(new FileOutConfig("/templates/mapstruct.java.vm") { focList.add(new FileOutConfig("/templates/mapstruct.java.vm") {
@Override @Override
public String outputFile(TableInfo tableInfo) { public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/mapstruct/" + tableInfo.getEntityName().replace("Entity", "Mapper") + StringPool.DOT_JAVA; return projectPath + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/mapstruct/" + tableInfo.getEntityName().replace("Entity", "Mapper") + StringPool.DOT_JAVA;
} }
}); });
focList.add(new FileOutConfig("/templates/dto.java.vm") { focList.add(new FileOutConfig("/templates/dto.java.vm") {
@Override @Override
public String outputFile(TableInfo tableInfo) { public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/dto/" + tableInfo.getEntityName().replace("Entity", "Dto") + StringPool.DOT_JAVA; return projectPath + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/dto/" + tableInfo.getEntityName().replace("Entity", "Dto") + StringPool.DOT_JAVA;
} }
}); });
focList.add(new FileOutConfig("/templates/vo.java.vm") { focList.add(new FileOutConfig("/templates/vo.java.vm") {
@Override @Override
public String outputFile(TableInfo tableInfo) { public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/vo/" + tableInfo.getEntityName().replace("Entity", "Vo") + StringPool.DOT_JAVA; return projectPath + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/vo/" + tableInfo.getEntityName().replace("Entity", "Vo") + StringPool.DOT_JAVA;
} }
}); });
focList.add(new FileOutConfig("/templates/query.java.vm") { focList.add(new FileOutConfig("/templates/query.java.vm") {
@Override @Override
public String outputFile(TableInfo tableInfo) { public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/query/" + tableInfo.getEntityName().replace("Entity", "Query") + StringPool.DOT_JAVA; return projectPath + "/src/main/java/"+ parentName.replace(".", File.separator) + File.separator + moduleName + "/api/query/" + tableInfo.getEntityName().replace("Entity", "Query") + StringPool.DOT_JAVA;
} }
}); });
cfg.setFileOutConfigList(focList); cfg.setFileOutConfigList(focList);
...@@ -268,7 +126,7 @@ public class Generate { ...@@ -268,7 +126,7 @@ public class Generate {
* *
* @return templateConfig * @return templateConfig
*/ */
private TemplateConfig getTemplateConfig() { private static TemplateConfig getTemplateConfig() {
return new TemplateConfig() return new TemplateConfig()
.setEntity(null) .setEntity(null)
.setController("templates/controller.java") .setController("templates/controller.java")
...@@ -285,7 +143,7 @@ public class Generate { ...@@ -285,7 +143,7 @@ public class Generate {
* @param parentName 父路径包名 如:cn.datax.service * @param parentName 父路径包名 如:cn.datax.service
* @return PackageConfig 包名配置 * @return PackageConfig 包名配置
*/ */
private PackageConfig getPackageConfig(String moduleName, String parentName) { private static PackageConfig getPackageConfig(String moduleName, String parentName) {
return new PackageConfig() return new PackageConfig()
.setModuleName(moduleName) .setModuleName(moduleName)
.setParent(parentName) .setParent(parentName)
...@@ -302,10 +160,10 @@ public class Generate { ...@@ -302,10 +160,10 @@ public class Generate {
* *
* @return GlobalConfig * @return GlobalConfig
*/ */
private GlobalConfig getGlobalConfig(String projectPath) { private static GlobalConfig getGlobalConfig(String projectPath) {
return new GlobalConfig() return new GlobalConfig()
//是否打开输出目录 //是否打开输出目录
.setOpen(false) .setOpen(true)
//开启 baseColumnList //开启 baseColumnList
.setBaseColumnList(true) .setBaseColumnList(true)
//开启 BaseResultMap //开启 BaseResultMap
...@@ -335,7 +193,7 @@ public class Generate { ...@@ -335,7 +193,7 @@ public class Generate {
* @param tableNames 表名 * @param tableNames 表名
* @return StrategyConfig * @return StrategyConfig
*/ */
private StrategyConfig getStrategyConfig(List<String> tableNames) { private static StrategyConfig getStrategyConfig(String[] tableNames) {
StrategyConfig strategyConfig = new StrategyConfig() StrategyConfig strategyConfig = new StrategyConfig()
//从数据库表到文件的命名策略 //从数据库表到文件的命名策略
.setNaming(NamingStrategy.underline_to_camel) .setNaming(NamingStrategy.underline_to_camel)
...@@ -347,7 +205,7 @@ public class Generate { ...@@ -347,7 +205,7 @@ public class Generate {
.setTablePrefix("sys_") .setTablePrefix("sys_")
//写于父类中的公共字段 //写于父类中的公共字段
.setSuperEntityColumns(new String[]{"id", "create_time", "create_by", "update_time", "update_by", "status"}) .setSuperEntityColumns(new String[]{"id", "create_time", "create_by", "update_time", "update_by", "status"})
.setInclude(tableNames.toArray(new String[tableNames.size()])) .setInclude(tableNames)
//公共父类 //公共父类
.setSuperEntityClass("cn.datax.common.base.BaseEntity") .setSuperEntityClass("cn.datax.common.base.BaseEntity")
.setSuperServiceClass("cn.datax.common.base.BaseService") .setSuperServiceClass("cn.datax.common.base.BaseService")
...@@ -362,7 +220,7 @@ public class Generate { ...@@ -362,7 +220,7 @@ public class Generate {
* *
* @return 数据源配置 DataSourceConfig * @return 数据源配置 DataSourceConfig
*/ */
private DataSourceConfig getDataSourceConfig() { private static DataSourceConfig getDataSourceConfig() {
return new DataSourceConfig() return new DataSourceConfig()
.setUrl("jdbc:mysql://localhost:3306/data_cloud?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8") .setUrl("jdbc:mysql://localhost:3306/data_cloud?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8")
.setDriverName("com.mysql.cj.jdbc.Driver") .setDriverName("com.mysql.cj.jdbc.Driver")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment