使用DBCP或C3P0存储二进制抛出异常

今天使用DBCP数据库连接池存放二进制图片,抛出如下异常:

严重: Servlet.service() for servlet hotelAdmin threw exception
java.lang.AbstractMethodError: org.apache.commons.dbcp.DelegatingPreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V
at com.qbg.dao.HotelDao$6.setValues(HotelDao.java:170)
at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:816)
at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:1)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:587)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:812)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:868)
at com.qbg.dao.HotelDao.update(HotelDao.java:166)
at com.qbg.service.HotelService.update(HotelService.java:54)

从字面意思看,是DBCP没有实现该接口,直接调用抽象接口肯定抛出异常。既然DBCP没有实现通用二进制流处理,那我们只能换个连接池或直接使用JDBC操作二进制流。

由于一般在数据库中只存放图片链接,所以也不想整了,就用JDBC直接操作吧,要不自己写个代理也行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值