如何从MySQL读取LONGBLOB

时间:2013-11-23 16:34:44

标签: java mysql groovy casting blob

我有一个pdf存储在数据库中作为LONGBLOB。

我需要使用Groovy脚本检索它的二进制输出流。

我试过这个:

rowTest = sql.firstRow("select data from mytable id = 666");
file = rowTest[0];
myLongBlob = (oracle.sql.BLOB)file;

但是,我得到了一个强制转换异常:

javax.script.ScriptException: javax.script.ScriptException: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '[B@48eb2326' with class '[B' to class 'oracle.sql.BLOB'

然后我意识到我正在尝试将LONGBLOB转换为BLOB,这可能是导致此错误发生的原因?

无论如何,还有另一种方法可以从LONGBLOB中读取我的PDF吗?

感谢。

编辑:错误不是由于将LONGBLOB强制转换为BLOB,我尝试使用BLOB并发生同样的错误。

编辑:我正在尝试按照本教程:http://groovy.codehaus.org/Reading+from+a+Blob

1 个答案:

答案 0 :(得分:4)

对象'[B@48eb2326'指的是字节数组; rowTest[0]处的对象是byte[],而不是Blob。所以最简单的事情可能是byte[] myLongBlob = (byte[]) file(无论如何,这对你来说可能更方便!)。