Error Description:
Exception in thread "main" Java.lang.AbstractMethodError:com.mysql.jdbc.Connection.isValid (I) Z
At Org.apache.commons.dbcp2.DelegatingConnection.isValid (delegatingconnection.java:914)
At Org.apache.commons.dbcp2.PoolableConnection.validate (poolableconnection.java:283)
At Org.apache.commons.dbcp2.PoolableConnectionFactory.validateConnection (poolableconnectionfactory.java:357)
At Org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory (basicdatasource.java:2304)
At Org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory (basicdatasource.java:2287)
At Org.apache.commons.dbcp2.BasicDataSource.createDataSource (basicdatasource.java:2038)
At Org.apache.commons.dbcp2.BasicDataSource.getConnection (basicdatasource.java:1533)
At Dbcp.main (dbcp.java:23)
Solution:
The Mysql-connector version is 5.0.4, then the corresponding DBCP and pool versions should be 1.4 and 1.6.
5.0.4 should not use version 2.0 and above for DBCP and pool. Because Org.apache.commons.dbcp2.DelegatingConnection has the following code in DBCP:
try {
return _conn.isvalid (timeout);
}
catch (SQLException e) {
HandleException (e);
return false;
}
Isvaild in the above code does not implement the above method in Com.mysql.jdbc.Connection (5.0.4), so an abstract method error will be thrown.
If you need to use DBCP 2.0, then Mysql-connector must use the 5.1.3 version.
Abstractmethoderror exception occurs when using DBCP