今天在将PDF文件插入到数据库的时候报了以下的错误:
java.lang.AbstractMethodError: Method org/apache/commons/dbcp/DelegatingCallableStatement.setBinaryStream(ILjava/io/InputStream;)V is abstract
代码是先使用字节数组,然后转换成字节数组输入流(ByteArrayInputStream),最后使用下面的格式插入数据库:
prepareCall.setBinaryStream(3, byteStream)
看了下数据库,保存该PDF的字段类型为image,就是BLOB类型的字段,之前没有使用过,只能先上网找找。
网上有说用dbcp 1.4的jar包,替换掉老的dbcpjar包。
试了下,报了一样的错误。
继续搜,发现类似问题的另一种解决方案为将文件长度强制设置为int
prepareCall.setBinaryStream(3, byteStream, (int)pdfFile.length);
改后重新测试了下,发现还真可以,问题搞定。