From d9f9ba31913bb9f5053ad78109e8a3c1c00f1e6a Mon Sep 17 00:00:00 2001 From: houzhongjian <houzhongyi@126.com> Date: 星期二, 23 七月 2024 09:58:30 +0800 Subject: [PATCH] update framework --- iailab-framework/iailab-common-mybatis/src/main/java/com/iailab/framework/mybatis/core/util/JdbcUtils.java | 25 ++++++++++++++++++++++--- 1 files changed, 22 insertions(+), 3 deletions(-) diff --git a/iailab-framework/iailab-common-mybatis/src/main/java/com/iailab/framework/mybatis/core/util/JdbcUtils.java b/iailab-framework/iailab-common-mybatis/src/main/java/com/iailab/framework/mybatis/core/util/JdbcUtils.java index 75f491d..6c12b4e 100644 --- a/iailab-framework/iailab-common-mybatis/src/main/java/com/iailab/framework/mybatis/core/util/JdbcUtils.java +++ b/iailab-framework/iailab-common-mybatis/src/main/java/com/iailab/framework/mybatis/core/util/JdbcUtils.java @@ -1,14 +1,19 @@ package com.iailab.framework.mybatis.core.util; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; import com.baomidou.mybatisplus.annotation.DbType; +import com.iailab.framework.common.util.spring.SpringUtils; +import com.iailab.framework.mybatis.core.enums.DbTypeEnum; +import javax.sql.DataSource; import java.sql.Connection; import java.sql.DriverManager; +import java.sql.SQLException; /** * JDBC 工具类 * - * @author iailab + * @author 芋道源码 */ public class JdbcUtils { @@ -35,8 +40,22 @@ * @return DB 类型 */ public static DbType getDbType(String url) { - String name = com.alibaba.druid.util.JdbcUtils.getDbType(url, null); - return DbType.getDbType(name); + return com.baomidou.mybatisplus.extension.toolkit.JdbcUtils.getDbType(url); + } + + /** + * 通过当前数据库连接获得对应的 DB 类型 + * + * @return DB 类型 + */ + public static DbType getDbType() { + DynamicRoutingDataSource dynamicRoutingDataSource = SpringUtils.getBean(DynamicRoutingDataSource.class); + DataSource dataSource = dynamicRoutingDataSource.determineDataSource(); + try (Connection conn = dataSource.getConnection()) { + return DbTypeEnum.find(conn.getMetaData().getDatabaseProductName()); + } catch (SQLException e) { + throw new IllegalArgumentException(e.getMessage()); + } } } -- Gitblit v1.9.3