PDF 字节流插入数据库报错

今天在将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);

改后重新测试了下,发现还真可以,问题搞定。

你可能感兴趣的:(PDF 字节流插入数据库报错)