diff --git a/pom.xml b/pom.xml index 792d0f1055..8fe77b64d6 100644 --- a/pom.xml +++ b/pom.xml @@ -1,13 +1,15 @@ 4.0.0 + +--> + com.alibaba druid 1.0.24-SNAPSHOT @@ -473,7 +475,7 @@ mysql mysql-connector-java - 5.1.38 + 6.0.3 provided 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 91ebb1a479..df840af2d1 100644 --- a/src/main/java/com/alibaba/druid/pool/vendor/MySqlValidConnectionChecker.java +++ b/src/main/java/com/alibaba/druid/pool/vendor/MySqlValidConnectionChecker.java @@ -45,6 +45,10 @@ public class MySqlValidConnectionChecker extends ValidConnectionCheckerAdapter i public MySqlValidConnectionChecker(){ try { clazz = Utils.loadClass("com.mysql.jdbc.MySQLConnection"); + if (clazz == null) { + clazz = Utils.loadClass("com.mysql.cj.jdbc.ConnectionImpl"); + } + if (clazz != null) { ping = clazz.getMethod("pingInternal", boolean.class, int.class); } diff --git a/src/test/java/com/alibaba/druid/pool/mysql/MySqlTest.java b/src/test/java/com/alibaba/druid/pool/mysql/MySqlTest.java index d8d10d4e23..6f19404371 100644 --- a/src/test/java/com/alibaba/druid/pool/mysql/MySqlTest.java +++ b/src/test/java/com/alibaba/druid/pool/mysql/MySqlTest.java @@ -2,8 +2,11 @@ package com.alibaba.druid.pool.mysql; import com.alibaba.druid.pool.DruidDataSource; import junit.framework.TestCase; +import org.junit.Assert; import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Statement; /** * Created by wenshao on 16/8/5. @@ -13,12 +16,12 @@ public class MySqlTest extends TestCase { protected void setUp() throws Exception { dataSource = new DruidDataSource(); - dataSource.setUrl("jdbc:mysql://a.b.c.e:3906/"); - dataSource.setUsername("a"); - dataSource.setPassword("b"); + dataSource.setUrl("jdbc:mysql://raspberrypi_mysql:3306/druid_test_db?allowMultiQueries=true"); + dataSource.setUsername("druid_test"); + dataSource.setPassword("druid_test"); dataSource.setFilters("log4j"); dataSource.setValidationQuery("SELECT 1"); - dataSource.setTestOnBorrow(false); + dataSource.setTestOnBorrow(true); dataSource.setTestWhileIdle(true); } @@ -28,6 +31,25 @@ public class MySqlTest extends TestCase { public void test_mysql() throws Exception { Connection connection = dataSource.getConnection(); + + System.out.println("----------- : " + connection.unwrap(Connection.class).getClass()); + + Statement stmt = connection.createStatement(); + stmt.execute("select 1;select 1"); + + ResultSet rs = stmt.getResultSet(); + Assert.assertFalse(rs.isClosed()); + + Assert.assertTrue(stmt.getMoreResults()); + Assert.assertTrue(rs.isClosed()); + + ResultSet rs2 = stmt.getResultSet(); + Assert.assertFalse(rs2.isClosed()); + rs2.close(); + Assert.assertTrue(rs2.isClosed()); + + stmt.close(); + connection.close(); } }