从数据库获取BLOB,如何将它们放回去

时间:2014-01-21 20:43:49

标签: database oracle jdbc blob

我从数据库中获取了BLOB数据并使用下面的代码将其放入一个字符串(rs是ResultSet,文件是Map),有没有办法将这个字符串值放回BLOB列? / p>

                    Blob blob = rs.getBlob("FILE_DATA");
                    if(blob != null) {
                        byte[] bdata = blob.getBytes(1, (int) blob.length());
                        String data = new String(bdata);
                        file.put("FILE_DATA", data);
                    }

我尝试了一些像这样的建议,但它们效果不好。

            Blob blbVal = getConnection().createBlob();
            byte[] fileData = value.toString().getBytes();
            blbVal.setBytes(1, fileData);
            cs.setBlob(index, blbVal);

1 个答案:

答案 0 :(得分:0)

我发现将BLOB放入String的方式也不正确,如果我们不对BLOB数据进行编码,它就会丢失。

在这里,我发现另一篇文章完美地解决了这个问题。感谢BalusC的回答 How to represent an image from database in JSON