若代码写法没有问题,报各种奇怪错误时,尝试升级版本解决。
在Mac上测试使用druid连接池获取连接时,报如下错误:
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
十一月 17, 2021 10:00:03 下午 com.alibaba.druid.pool.vendor.MySqlValidConnectionChecker warn
警告: Cannot resolve com.mysq.jdbc.Connection.ping method. Will use 'SELECT 1' instead.
java.lang.NullPointerException
at com.alibaba.druid.pool.vendor.MySqlValidConnectionChecker.(MySqlValidConnectionChecker.java:48)
at com.alibaba.druid.pool.DruidDataSource.initValidConnectionChecker(DruidDataSource.java:878)
at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:594)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:915)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:911)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:98)
at cn.itcast.util.JDBCUtils.getConnection(JDBCUtils.java:34)
at cn.itcast.jdbc.DruidDemo.main(DruidDemo.java:10)
十一月 17, 2021 10:00:05 下午 com.alibaba.druid.pool.DruidDataSource error
严重: init datasource error
java.sql.SQLException: validateConnection false
at com.alibaba.druid.pool.DruidAbstractDataSource.validateConnection(DruidAbstractDataSource.java:1216)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1439)
at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:618)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:915)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:911)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:98)
at cn.itcast.util.JDBCUtils.getConnection(JDBCUtils.java:34)
at cn.itcast.jdbc.DruidDemo.main(DruidDemo.java:10)
当前使用的druid的版本为1.0.9,mysql-connector-java的版本为8.0.16,将druid的版本尝试升级为1.1.19时,可正常获取连接。