您好,欢迎访问一九零五行业门户网

使用DBCP时发生AbstractMethodError异常

使用dbcp时发生abstractmethoderror异常
使用dbcp时发生abstractmethoderror异常,,错误描述:
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)
解决方案:
    mysql-connector 版本为 5.0.4 ,那么对应的 dbcp 和 pool 版本应该为 1.4 和 1.6 。
    5.0.4 不应该使用 2.0 及以上版本的 dbcp 和 pool。因为 在 dbcp 中 org.apache.commons.dbcp2.delegatingconnection 有如下代码:
try {
    return _conn.isvalid(timeout);
 }
 catch (sqlexception e) {
    handleexception(e);
    return false;
 }
    上述代码中 isvaild 在 com.mysql.jdbc.connection (5.0.4 ) 中并未实现上述方法,因此将会抛出抽象方法错误。
    如果需要使用 dbcp 2.0 ,那么 mysql-connector 必须使用 5.1.3 版本。
本文永久更新链接地址:
其它类似信息

推荐信息