老Tomcat項目在接入HikariCP時遇到報錯:
Caused by: java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z
at com.zaxxer.hikari.pool.PoolBase.checkDriverSupport(PoolBase.java:411) ~[HikariCP-java7-2.4.13.jar:na]
at com.zaxxer.hikari.pool.PoolBase.setupConnection(PoolBase.java:382) ~[HikariCP-java7-2.4.13.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:346) ~[HikariCP-java7-2.4.13.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:193) ~[HikariCP-java7-2.4.13.jar:na]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:428) ~[HikariCP-java7-2.4.13.jar:na]
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:499) ~[HikariCP-java7-2.4.13.jar:na]
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:112) ~[HikariCP-java7-2.4.13.jar:na]
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:97) ~[HikariCP-java7-2.4.13.jar:na]
解決思路:
先貼出 pom.xml,
<properties>
<HikariCP>2.4.13</HikariCP>
</properties>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP-java7</artifactId>
<version>${HikariCP}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.5</version>
<scope>runtime</scope>
</dependency>
配置數據源
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://finance.fd.com:3306/finance_syscnf"/>
<property name="username" value="CC_dev"/>
<property name="password" value="hvo3sl234"/>
<property name="connectionTestQuery" value="select 1"/>
</bean>
如果不添加 <property name="connectionTestQuery" value="select 1"/>, 那么連接池初始化會報錯:
