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); }