当前使用版本
代码生成 mybatis-plus-generator 3.5.4 oracle 数据库
该问题是如何引起的?
已是最新版本,代码生成耗时太长了。 开始 mybatis-plus-generator 退回到 3.5.2 就可以了 现在 3.5.2 有了兼容问题,设置 super entity 之后会抛异常 所以只好改回 3.5.4
重现步骤
public class CodeGenerator {
public static void main(String[] args) {
generate();
}
private static final DataSourceConfig.Builder DATA_SOURCE_CONFIG_BUILDER = new DataSourceConfig.Builder(
"jdbc:oracle:thin:@ip:port:orcl",
"ACCOUNT",
"PASSWORD"
);
public static void generate() {
FastAutoGenerator.create(DATA_SOURCE_CONFIG_BUILDER)
// 全局配置
.globalConfig((scanner, builder) -> builder.author(scanner.apply("请输入作者名称:")))
// 包配置
.packageConfig((scanner, builder) -> builder.parent(scanner.apply("请输入完整包名:")))
// 模板配置
.templateConfig(builder -> builder.controller("/templates/code/controller.java"))
// 策略配置
.strategyConfig((scanner, builder) -> builder
.addTablePrefix(getTablePrefix(scanner.apply("请输入表前缀,多个用英文逗号分隔,没有前缀输入 #")))
.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔,所有输入 all")))
.controllerBuilder().enableRestStyle().enableHyphenStyle()
// Entity 策略
.entityBuilder()
.enableLombok()
// TODO
.superClass(PeriodEntity.class)
.addSuperEntityColumns("ID", "GMT_CREATE", "GMT_MODIFIED", "IS_DELETED", "PERIOD", "PERIOD_TEXT")
// Service 策略
.serviceBuilder()
.superServiceClass(DataVisualizationService.class)
.superServiceImplClass(DataVisualizationServiceImpl.class)
// Mapper 策略
.mapperBuilder()
.superClass(MplusMapper.class)
.build())
.execute();
}
private static String[] getTablePrefix(String prefix) {
if (prefix.contains("#")) {
return new String[0];
}
return prefix.split(",");
}
// 处理 all 情况
protected static List<String> getTables(String tables) {
return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
}
}
报错信息
没有报错,就是耗时很长,可能几分钟,之前排查过,是获取表信息的 sql 语句耗时很长。其他开发者有遇到这个问题的没呢?
Comment From: li-ryer
设置一下数据库名试试 ,new DataSourceConfig.Builder(url, username, password).schema("数据库名")