From f30f3ac37bac4d170e1fe6d87fdf57adb3b783d3 Mon Sep 17 00:00:00 2001 From: konbai <1527468660@qq.com> Date: 星期五, 18 三月 2022 01:37:04 +0800 Subject: [PATCH] fix 修复执行"查询当前数据库类型"后未关闭数据库链接,导致当前连接池中活跃连接数达到最大连接数的bug --- ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java index 55a3a41..34afa5b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java @@ -9,6 +9,7 @@ import lombok.NoArgsConstructor; import javax.sql.DataSource; +import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; @@ -23,11 +24,11 @@ /** * 鑾峰彇褰撳墠鏁版嵁搴撶被鍨� */ - public static DataBaseType getDataBasyType() { + public static DataBaseType getDataBaseType() { DynamicRoutingDataSource ds = (DynamicRoutingDataSource) SpringUtils.getBean(DataSource.class); DataSource dataSource = ds.determineDataSource(); - try { - DatabaseMetaData metaData = dataSource.getConnection().getMetaData(); + try (Connection conn = dataSource.getConnection()) { + DatabaseMetaData metaData = conn.getMetaData(); String databaseProductName = metaData.getDatabaseProductName(); return DataBaseType.find(databaseProductName); } catch (SQLException e) { @@ -36,23 +37,23 @@ } public static boolean isMySql() { - return DataBaseType.MY_SQL == getDataBasyType(); + return DataBaseType.MY_SQL == getDataBaseType(); } public static boolean isOracle() { - return DataBaseType.ORACLE == getDataBasyType(); + return DataBaseType.ORACLE == getDataBaseType(); } public static boolean isPostgerSql() { - return DataBaseType.POSTGRE_SQL == getDataBasyType(); + return DataBaseType.POSTGRE_SQL == getDataBaseType(); } public static boolean isSqlServer() { - return DataBaseType.SQL_SERVER == getDataBasyType(); + return DataBaseType.SQL_SERVER == getDataBaseType(); } public static String findInSet(Object var1, String var2) { - DataBaseType dataBasyType = getDataBasyType(); + DataBaseType dataBasyType = getDataBaseType(); String var = Convert.toStr(var1); if (dataBasyType == DataBaseType.SQL_SERVER) { // charindex(',100,' , ',0,100,101,') <> 0 -- Gitblit v1.9.3