在druid 1.2.16以及之前版本中,可以允许dbType =null,不影响数据库连接使用
在druid 1.2.17以及之后版本中,已经不允许dbType =null
代码差异如下
1.2.16
if (connectTimeout > 0) {
if (isMySql) {
if (connectTimeoutStr == null) {
connectTimeoutStr = Integer.toString(connectTimeout);
}
physicalConnectProperties.put("connectTimeout", connectTimeoutStr);
} else if (isOracle) {
if (connectTimeoutStr == null) {
connectTimeoutStr = Integer.toString(connectTimeout);
}
physicalConnectProperties.put("oracle.net.CONNECT_TIMEOUT", connectTimeoutStr);
} else if (driver != null && "org.postgresql.Driver".equals(driver.getClass().getName())) {
physicalConnectProperties.put("loginTimeout", connectTimeout);
physicalConnectProperties.put("socketTimeout", socketTimeout);
}
}
1.2.17
if (connectTimeout > 0) {
if (isMySql) {
if (connectTimeoutStr == null) {
connectTimeoutStr = Integer.toString(connectTimeout);
}
physicalConnectProperties.put("connectTimeout", connectTimeoutStr);
} else if (isOracle) {
if (connectTimeoutStr == null) {
connectTimeoutStr = Integer.toString(connectTimeout);
}
physicalConnectProperties.put("oracle.net.CONNECT_TIMEOUT", connectTimeoutStr);
} else if (driver != null && POSTGRESQL_DRIVER.equals(driver.getClass().getName())) {
// see https://github.com/pgjdbc/pgjdbc/blob/2b90ad04696324d107b65b085df4b1db8f6c162d/README.md
physicalConnectProperties.put("loginT

文章讲述了Druid数据库连接库在1.2.17版本中对dbType参数的严格要求,以及在不使用默认工厂的情况下如何通过自定义数据源绕过空指针异常。作者提醒读者注意dbTypeName的检查和数据库连接配置的调整。
1087

被折叠的 条评论
为什么被折叠?



