package automatically;
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.*;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* <p>
* mysql 代码生成器演示例子
* </p>
*
* @author Steven
* @since 2019-04-24
*/
public class CodeGenerator {
private static final Logger log = LoggerFactory.getLogger(CodeGenerator.class);
/**
* 以下是代码生成前需要修改的部分:
*/
private static String author = "Steven";
//private static String url = "jdbc:mysql://hi-tech.online:3306/base?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
private static String url = "jdbc:oracle:thin:@10.174.43.37:15219:logdb1";
private static String driver = "oracle.jdbc.driver.OracleDriver"; //"com.mysql.cj.jdbc.Driver";
//private static String schemaName = "base";
private static String username = "ucr_log";
private static String password = "Ynyd!123";
private static String parentPackege = "com.ai.risk.analysis.modules";
/**
* 以下不用修改
*/
/**
* <p>
* 读取控制台内容
* </p>
*/
private static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
String help = tip + ": ";
System.out.print(help);
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotEmpty(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}
public static void main(String[] args) {
//System.out.println("数据源: " + schemaName);
String moduleName = scanner("请输入本次构建的模块名");
String[] tables = scanner("请输入本次构建的表名(多个表明用英文逗号隔开)").split(",");
log.info("本次构建的模块路径为: {}.{}", parentPackege, moduleName);
log.info("本次构建的表: ");
for (String table : tables) {
log.info(" -> " + table);
}
String answer = scanner("是否继续? (Y/N)");
if (!"Y".equalsIgnoreCase(answer)) {
System.exit(0);
}
// 自定义需要填充的字段
List<TableFill> tableFillList = new ArrayList<>();
TableFill createField = new TableFill("gmt_create", FieldFill.INSERT);
TableFill modifiedField = new TableFill("gmt_modified", FieldFill.INSERT_UPDATE);
tableFillList.add(createField);
tableFillList.add(modifiedField);
// 代码生成器
AutoGenerator autoGenerator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
String projectPath = System.getProperty("user.dir").replace('\\', '/');
String outPutDir = projectPath + "/src/main/java";
log.info("样板代码输出路径: " + outPutDir);
globalConfig.setOutputDir(outPutDir);
globalConfig.setAuthor(author);
globalConfig.setOpen(false);
autoGenerator.setGlobalConfig(globalConfig);
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.ORACLE);
dataSourceConfig.setUrl(url);
//dataSourceConfig.setSchemaName(schemaName);
dataSourceConfig.setDriverName(driver);
dataSourceConfig.setUsername(username);
dataSourceConfig.setPassword(password);
autoGenerator.setDataSource(dataSourceConfig);
// 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setModuleName(moduleName);
packageConfig.setParent(parentPackege);
packageConfig.setEntity("entity.po");
autoGenerator.setPackageInfo(packageConfig);
// 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
List<FileOutConfig> focList = new ArrayList<>();
// focList.add(new FileOutConfig("/templates/controller.java.ftl") {
// @Override
// public String outputFile(TableInfo tableInfo) {
// // 自定义输入文件名称
// String path = projectPath + "/src/main/java/" + parentPackege.replace('.', '/') + "/" + packageConfig.getModuleName()
// + "/" + tableInfo.getEntityName() + "Controller" + StringPool.DOT_JAVA;
// System.out.println("controller路径为: " + path);
// return path;
// }
// });
cfg.setFileOutConfigList(focList);
autoGenerator.setCfg(cfg);
autoGenerator.setTemplate(new TemplateConfig().setXml(null));
// 策略配置
StrategyConfig strategy = new StrategyConfig();
// strategy.setTableFillList(tableFillList);
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setInclude(tables);
strategy.setRestControllerStyle(true);
//strategy.setSuperEntityClass(BaseEntity.class);
strategy.setSuperEntityClass("com.ai.risk.analysis.framework.common.BaseEntity");
strategy.setSuperEntityColumns("id", "gmt_create", "gmt_modified", "enabled");
strategy.setControllerMappingHyphenStyle(true);
//strategy.setTablePrefix(packageConfig.getModuleName() + "_");
strategy.setEntityTableFieldAnnotationEnable(true);
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setController("/automatically/controller.java");
templateConfig.setService("/automatically/service.java");
templateConfig.setServiceImpl("/automatically/serviceImpl.java");
templateConfig.setEntity("/automatically/entity.java");
templateConfig.setMapper("/automatically/mapper.java");
templateConfig.setXml("/automatically/mapper.xml");
autoGenerator.setTemplate(templateConfig);
autoGenerator.setStrategy(strategy);
autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());
autoGenerator.execute();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于SpringBoot + Kafka + Redis + InfluxDB + HBase + Grafana 的风控系统,项目经过严格测试,确保可以运行! 基于SpringBoot + Kafka + Redis + InfluxDB + HBase + Grafana 的风控系统,项目经过严格测试,确保可以运行! 基于SpringBoot + Kafka + Redis + InfluxDB + HBase + Grafana 的风控系统,项目经过严格测试,确保可以运行! 基于SpringBoot + Kafka + Redis + InfluxDB + HBase + Grafana 的风控系统,项目经过严格测试,确保可以运行! 基于SpringBoot + Kafka + Redis + InfluxDB + HBase + Grafana 的风控系统,项目经过严格测试,确保可以运行! 基于SpringBoot + Kafka + Redis + InfluxDB + HBase + Grafana 的风控系统,项目经过严格测试,确保可以运行!
资源推荐
资源详情
资源评论
收起资源包目录
risk-control-master.zip (46个子文件)
risk-control-master
gradle
wrapper
gradle-wrapper.jar 53KB
gradle-wrapper.properties 232B
lib
ojdbc5_11_2_0_3.jar 2MB
doc
HBase 2KB
trace.log 7.57MB
src
test
resources
automatically
controller.java.ftl 1KB
entity.java.ftl 4KB
mapper.java.ftl 425B
mapper.xml.ftl 1KB
entity.kt.ftl 3KB
serviceImpl.java.ftl 695B
service.java.ftl 374B
java
automatically
CodeGenerator.java 7KB
main
resources
application.yml 995B
java
com
ai
risk
analysis
Application.java 432B
modules
warning
mapper
WarningMapper.java 374B
xml
WarningMapper.xml 237B
task
HBaseSinkTask.java 1KB
InfluxdbSinkTask.java 1KB
service
BaseAccumulator.java 3KB
IOpcodeSV.java 347B
IServiceSV.java 350B
IServiceAndOpcodeSV.java 217B
IWarningSV.java 496B
AbstractHBaseAccumulator.java 2KB
impl
ServiceAndInstanceSVImpl.java 999B
ServiceAndOpcodeSVImpl.java 975B
ServiceAndIpSVImpl.java 949B
WarningServiceImpl.java 4KB
ServiceSVImpl.java 1KB
OpcodeSVImpl.java 1KB
IServiceAndInstanceSV.java 221B
IServiceAndIpSV.java 209B
entity
unit
PointUnit.java 556B
CallUnit.java 410B
po
Warning.java 938B
util
HbaseConnectionFactory.java 822B
HbaseOps.java 2KB
kafka
L4xTraceConsumer.java 6KB
framework
common
BaseEntity.java 502B
config
RootConfig.java 2KB
gradlew.bat 2KB
build.gradle 2KB
settings.gradle 29B
gradlew 5KB
.gitignore 311B
共 46 条
- 1
资源评论
- ˇEliauk2023-11-04发现一个宝藏资源,资源有很高的参考价值,赶紧学起来~
白话机器学习
- 粉丝: 1w+
- 资源: 7671
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功