修复Druid连接池无法设置部分属性问题

This commit is contained in:
Looly 2024-01-02 13:21:19 +08:00
parent fc8d25dfac
commit 88cae1d612
2 changed files with 33 additions and 1 deletions

View File

@ -35,7 +35,7 @@
<dbcp2.version>2.9.0</dbcp2.version>
<!-- 固定10.0.x -->
<tomcat-jdbc.version>10.0.27</tomcat-jdbc.version>
<druid.version>1.2.17</druid.version>
<druid.version>1.2.21</druid.version>
<!-- 固定4.x -->
<hikariCP.version>4.0.3</hikariCP.version>
<sqlite.version>3.43.0.0</sqlite.version>

View File

@ -74,6 +74,38 @@ public class DruidDSFactory implements DSFactory {
ds.setBreakAfterAcquireFailure(druidProps.getBool(breakAfterAcquireFailureKey));
}
// issue#I8STFC 补充
// validationQueryTimeout
final String validationQueryTimeout = "druid.validationQueryTimeout";
if(druidProps.containsKey(validationQueryTimeout)){
ds.setValidationQueryTimeout(druidProps.getInt(validationQueryTimeout));
}
// queryTimeout
final String queryTimeout = "druid.queryTimeout";
if(druidProps.containsKey(queryTimeout)){
ds.setQueryTimeout(druidProps.getInt(queryTimeout));
}
// connectTimeout
final String connectTimeout = "druid.connectTimeout";
if(druidProps.containsKey(connectTimeout)){
ds.setConnectTimeout(druidProps.getInt(connectTimeout));
}
// socketTimeout
final String socketTimeout = "druid.socketTimeout";
if(druidProps.containsKey(socketTimeout)){
ds.setSocketTimeout(druidProps.getInt(socketTimeout));
}
// transactionQueryTimeout
final String transactionQueryTimeout = "druid.transactionQueryTimeout";
if(druidProps.containsKey(transactionQueryTimeout)){
ds.setTransactionQueryTimeout(druidProps.getInt(transactionQueryTimeout));
}
// loginTimeout
final String loginTimeout = "druid.loginTimeout";
if(druidProps.containsKey(loginTimeout)){
ds.setLoginTimeout(druidProps.getInt(loginTimeout));
}
// 检查关联配置在用户未设置某项配置时设置默认值
if (null == ds.getValidationQuery()) {
// 在validationQuery未设置的情况下以下三项设置都将无效