bug fixed validationQuery on ReplicationDriver. issue #1922

This commit is contained in:
wenshao
2017-08-18 16:34:16 +08:00
parent e5bd1a24ad
commit b4479d515c
3 changed files with 11 additions and 2 deletions
@@ -1079,16 +1079,18 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
private void initValidConnectionChecker() {
String realDriverClassName = driver.getClass().getName();
if (realDriverClassName.equals(JdbcConstants.MYSQL_DRIVER) //
|| realDriverClassName.equals(JdbcConstants.MYSQL_DRIVER_6)) {
if (JdbcUtils.isMySqlDriver(realDriverClassName)) {
this.validConnectionChecker = new MySqlValidConnectionChecker();
} else if (realDriverClassName.equals(JdbcConstants.ORACLE_DRIVER)
|| realDriverClassName.equals(JdbcConstants.ORACLE_DRIVER2)) {
this.validConnectionChecker = new OracleValidConnectionChecker();
} else if (realDriverClassName.equals(JdbcConstants.SQL_SERVER_DRIVER)
|| realDriverClassName.equals(JdbcConstants.SQL_SERVER_DRIVER_SQLJDBC4)
|| realDriverClassName.equals(JdbcConstants.SQL_SERVER_DRIVER_JTDS)) {
this.validConnectionChecker = new MSSQLValidConnectionChecker();
} else if (realDriverClassName.equals(JdbcConstants.POSTGRESQL_DRIVER)) {
this.validConnectionChecker = new PGValidConnectionChecker();
}
@@ -47,6 +47,7 @@ public interface JdbcConstants {
public static final String MYSQL = "mysql";
public static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
public static final String MYSQL_DRIVER_6 = "com.mysql.cj.jdbc.Driver";
public static final String MYSQL_DRIVER_REPLICATE = "com.mysql.jdbc.ReplicationDriver";
public static final String MARIADB = "mariadb";
public static final String MARIADB_DRIVER = "org.mariadb.jdbc.Driver";
@@ -814,4 +814,10 @@ public final class JdbcUtils implements JdbcConstants {
throw new SQLException("getCreateTableScript dbType not support for " + dbType);
}
public static boolean isMySqlDriver(String driverClassName) {
return driverClassName.equals(JdbcConstants.MYSQL_DRIVER) //
|| driverClassName.equals(JdbcConstants.MYSQL_DRIVER_6)
|| driverClassName.equals(JdbcConstants.MYSQL_DRIVER_REPLICATE);
}
}