你的位置:首页 > 数据库

[数据库]使用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 版本。

 


贵州旅游指南攻略大全贵州旅游住哪里比较方便贵州旅游住宿攻略贵州旅游最佳时间贵州自驾游最佳路线梵净山在哪里_梵净山在哪_梵净山旅游交通地图 嵩山少林寺门票价格多少钱 深圳欢乐谷地址 石人山门票_河南平顶山石人山(尧山)门票价格多少钱 五月快乐“洲”游各国 线路攻略全推荐 这样的扒鸡 千年古都玩穿越_现实中遇见唐宗宋祖 稻城亚丁购物指南 潍坊富华水上皇宫官网?富华水上皇宫最新票价? 潍坊水上皇宫营业时间?潍坊富华水上皇宫什么时候开业? 富华水上乐园好玩么?潍坊富华水上乐园晚上开放吗? 江南大峡谷漂流几点开漂?临海江南大峡谷漂流全天都能玩吗? 江门哪里有梅花节?江门赏梅花哪里好? 2015元旦深圳演唱会有哪些明星?深圳世界之窗元旦有哪些好玩的活动? 2015元旦深圳哪里有演唱会?深圳演唱会门票多少钱? 深圳世界之窗2015元旦跨年演唱会?世界之窗元旦演唱会几点开始? IXFA10N60P Datasheet IXFA10N60P Datasheet IXTA10N60P Datasheet IXTA10N60P Datasheet STD11NM60N Datasheet STD11NM60N Datasheet 浙江出发去阿尔巴尼亚旅游 浙江出发去阿尔巴尼亚旅游 浙江出发去阿尔巴尼亚旅游 浙江出发去阿尔及利亚旅游 浙江出发去阿尔及利亚旅游 浙江出发去阿尔及利亚旅游 浙江出发去阿富汗旅游 浙江出发去阿富汗旅游 浙江出发去阿富汗旅游