From aed14f383a925495c995b651ecfd7ea798d659eb Mon Sep 17 00:00:00 2001 From: DigitalSonic Date: Fri, 10 Feb 2017 22:22:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3MySQL=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E5=99=A8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 查询超时单位是秒,默认1000秒太长了,估计当时搞错单位了 2.当方法没有传SQL时设定一个默认的SQL,而不是直接返回true --- .../druid/pool/vendor/MySqlValidConnectionChecker.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/vendor/MySqlValidConnectionChecker.java b/src/main/java/com/alibaba/druid/pool/vendor/MySqlValidConnectionChecker.java index 9278799d55..a67352af80 100644 --- a/src/main/java/com/alibaba/druid/pool/vendor/MySqlValidConnectionChecker.java +++ b/src/main/java/com/alibaba/druid/pool/vendor/MySqlValidConnectionChecker.java @@ -33,7 +33,8 @@ import com.alibaba.druid.util.Utils; public class MySqlValidConnectionChecker extends ValidConnectionCheckerAdapter implements ValidConnectionChecker, Serializable { - public static final int DEFAULT_VALIDATION_QUERY_TIMEOUT = 1000; + public static final int DEFAULT_VALIDATION_QUERY_TIMEOUT = 1; + public static final String DEFAULT_VALIDATION_QUERY = "SELECT 1"; private static final long serialVersionUID = 1L; private static final Log LOG = LogFactory.getLog(MySqlValidConnectionChecker.class); @@ -105,8 +106,9 @@ public class MySqlValidConnectionChecker extends ValidConnectionCheckerAdapter i } } - if (validateQuery == null || validateQuery.length() == 0) { - return true; + String query = validateQuery; + if (validateQuery == null || validateQuery.isEmpty()) { + query = DEFAULT_VALIDATION_QUERY; } Statement stmt = null; @@ -116,7 +118,7 @@ public class MySqlValidConnectionChecker extends ValidConnectionCheckerAdapter i if (validationQueryTimeout > 0) { stmt.setQueryTimeout(validationQueryTimeout); } - rs = stmt.executeQuery(validateQuery); + rs = stmt.executeQuery(query); return true; } finally { JdbcUtils.close(rs);