修复:新增数据源时,参数填写错误,druid连接池配置未能正确关闭,导致控制台重复输出错误日志的问题

This commit is contained in:
diantu
2023-02-06 16:11:06 +08:00
parent e4313007fb
commit 9b7804511e

View File

@@ -14,9 +14,9 @@ import java.util.concurrent.atomic.AtomicLong;
* @since 2020-04-08 * @since 2020-04-08
*/ */
public class DruidDataSourceUtil { public class DruidDataSourceUtil {
private static AtomicLong nameId = new AtomicLong(0); private static AtomicLong nameId = new AtomicLong(0);
public static DruidDataSource createDataSource(String driverClassName, String url, String username, String password, boolean breakAfterAcquireFailure) throws Exception { public static DruidDataSource createDataSource(String driverClassName, String url, String username, String password, boolean breakAfterAcquireFailure) throws Exception {
// 数据源配置 // 数据源配置
DruidDataSource dataSource = new DruidDataSource(); DruidDataSource dataSource = new DruidDataSource();
@@ -43,11 +43,18 @@ public class DruidDataSourceUtil {
if (Objects.equals("oracle.jdbc.driver.OracleDriver", driverClassName)) { if (Objects.equals("oracle.jdbc.driver.OracleDriver", driverClassName)) {
dataSource.setValidationQuery("select 1 from dual"); dataSource.setValidationQuery("select 1 from dual");
} }
DruidPooledConnection connection = dataSource.getConnection(3000); try {
if (connection == null) { DruidPooledConnection connection = dataSource.getConnection(3000);
if (connection == null) {
dataSource.close();
throw new ConfirmException("尝试获取该数据源连接失败:" + url);
}
connection.recycle();
}catch (Exception e){
dataSource.close();
throw new ConfirmException("尝试获取该数据源连接失败:" + url); throw new ConfirmException("尝试获取该数据源连接失败:" + url);
} }
connection.recycle();
return dataSource; return dataSource;
} }
} }