我有一个代码,我将数组列表转换为字节数组,然后将该字节数组保存为MySQL数据库中的BLOB.以下是代码: –
Object temp = attributes.get(columnName);
if (temp instanceof List && temp != null) {
List extraAttributes = (ArrayList) temp;
resultStmt.setBytes(currentIndex,createByteArray(extraAttributes));
createByteArray方法定义如下:
private byte [] createByteArray( Object obj)
{
byte [] bArray = null;
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream objOstream = new ObjectOutputStream(baos);
objOstream.writeObject(obj);
bArray = baos.toByteArray();
}
catch (Exception e)
{
TraceDbLog.writeError("Problem in createByteArray",e);
}
return bArray;
}
以上代码是为了将HashMap写入BLOB而编写的,我使用相同的方法将HashMap转换为BLOB.
我正在读取blob时读取代码中出现的问题.
private Object readBytes (ResultSet rs,String columnName)
throws sqlException
{
ObjectInputStream ois = null;
byte [] newArray;
Object obj = null;
try
{
newArray = rs.getBytes(columnName);
ois = new ObjectInputStream (new ByteArrayInputStream(newArray));
obj = ois.readObject ();
}
在读取部分中,对象不是来自hasMap的arrayList,而在eclipse中的调试透视中,eclipse也无法检查即将到来的对象.
我也尝试将对象强制转换为List,但仍无法获得正确的响应.
请告诉我读/写上述BLOB是否有任何缺陷.
最佳答案
原文链接:https://www.f2er.com/mysql/433958.html