diff --git a/pom.xml b/pom.xml
index d639c6c26c..825a97fbbe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -188,7 +188,7 @@
mysql
mysql-connector-java
- 5.1.12
+ 5.1.16
test
diff --git a/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java
index a59f2539e7..8c8d042afd 100644
--- a/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java
+++ b/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java
@@ -138,7 +138,7 @@ public abstract class DruidAbstractDataSource implements DruidAbstractDataSource
protected long timeBetweenConnectErrorMillis = DEFAULT_TIME_BETWEEN_CONNECT_ERROR_MILLIS;
- private ValidConnectionChecker validConnectionChecker = null;
+ protected ValidConnectionChecker validConnectionChecker = null;
public ValidConnectionChecker getValidConnectionChecker() {
return validConnectionChecker;
diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java
index 56c8917304..f96548ec37 100644
--- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java
+++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java
@@ -33,6 +33,9 @@ import javax.naming.Referenceable;
import javax.naming.StringRefAddr;
import com.alibaba.druid.filter.Filter;
+import com.alibaba.druid.pool.vendor.MSSQLValidConnectionChecker;
+import com.alibaba.druid.pool.vendor.MySQLValidConnectionChecker;
+import com.alibaba.druid.pool.vendor.OracleValidConnectionChecker;
import com.alibaba.druid.proxy.jdbc.DataSourceProxyConfig;
import com.alibaba.druid.util.JdbcUtils;
@@ -74,8 +77,6 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
private final CountDownLatch initedLatch = new CountDownLatch(
2);
-
-
public DruidDataSource(){
}
@@ -129,6 +130,14 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
this.dbType = JdbcUtils.getDbType(jdbcUrl, driverClass.getClass().getName());
+ if ("mysql".equals(dbType)) {
+ this.validConnectionChecker = new MySQLValidConnectionChecker();
+ } else if ("oracle".equals(dbType)) {
+ this.validConnectionChecker = new OracleValidConnectionChecker();
+ } else if ("sqlserver".equals(dbType)) {
+ this.validConnectionChecker = new MSSQLValidConnectionChecker();
+ }
+
for (Filter filter : filters) {
filter.init(this);
}