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

来源:互联网 发布:mysql 删除某个字段 编辑:程序博客网 时间:2024/05/16 03:46

今天使用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直接操作吧,要不自己写个代理也行!