当我尝试使用 (Blob) 将 Oject 转换为 blob 时,出现 java.lang.ClassCastException: [B 无法转换为 java.sql.Blob 错误。
但是当我尝试使用以下代码进行转换并写入图像文件时,图像会损坏。
Blob blob = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
try {
out = new ObjectOutputStream(bos);
out.writeObject(myObj);
byte[] yourBytes = bos.toByteArray();
//blob.setBytes(1, yourBytes );
blob = new SerialBlob(yourBytes);
} finally {
out.close();
bos.close();
}
如何安全地将对象(保存为 Blob 的图像文件)转换为 Blob?
注意:由于要求,我只能获取从其他部分传递的对象。
最佳答案
你可以使用
如果您正在使用 hibernate
Blob blob = Hibernate.createBlob(bytes, session);
如果您使用 JDBC
Blob blob = connection.createBlob();
blob.setBytes(1, bytes);
关于java - 将对象转换为 blob (java.lang.ClassCastException : [B cannot be cast to java. sql.Blob),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15802070/