From 347e536a61595a4da6b1052af9a93c6f8073c8d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Fri, 10 Apr 2026 14:41:27 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E9=80=82=E9=85=8D=20=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E5=AF=BC=E5=85=A5=E6=95=B0=E6=8D=AE=E6=BA=90=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/mybatis/helper/DataBaseHelper.java | 20 +++++++++++++++++++ .../gen/service/GenTableServiceImpl.java | 4 ++-- .../dromara/gen/util/TemplateEngineUtils.java | 4 ++-- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java index 03c521edb..a46cc9870 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataBaseHelper.java @@ -54,6 +54,26 @@ public class DataBaseHelper { }); } + /** + * 获取指定数据源对应的数据库类型 + * + * @param dsName 数据源名称 + * @return 指定数据库对应的 DataBaseType 枚举,找不到时默认返回 MY_SQL + * @throws ServiceException 当获取数据库连接或元数据出现异常时抛出业务异常 + */ + public static DataBaseType getDataBaseType(String dsName) { + DataSource dataSource = DS.getDataSource(dsName); + return DB_TYPE_CACHE.computeIfAbsent(dsName, k -> { + try (Connection conn = dataSource.getConnection()) { + DatabaseMetaData metaData = conn.getMetaData(); + String databaseProductName = metaData.getDatabaseProductName(); + return DataBaseType.find(databaseProductName); + } catch (SQLException e) { + throw new RuntimeException("获取数据库类型失败", e); + } + }); + } + /** * 根据当前数据库类型,生成兼容的 FIND_IN_SET 语句片段 *
diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/org/dromara/gen/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-gen/src/main/java/org/dromara/gen/service/GenTableServiceImpl.java
index 0a75b598b..3b68e0b0c 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/java/org/dromara/gen/service/GenTableServiceImpl.java
+++ b/ruoyi-modules/ruoyi-gen/src/main/java/org/dromara/gen/service/GenTableServiceImpl.java
@@ -369,7 +369,7 @@ public class GenTableServiceImpl implements IGenTableService {
Dict context = TemplateEngineUtils.buildContext(table);
// 获取模板列表
- List