我有一个代码,我将hashMap列表写入数据库列,其中列类型为BLOB。之前编写的代码是为了将哈希映射插入数据库,我正在修改它以插入哈希映射列表。
读写代码如下: -
WRITE: -
Object temp = attributes.get(columnName);
if (temp instanceof List && temp != null) {
List extraAttributes = (ArrayList) temp;
resultStmt.setBytes(currentIndex, createByteArray(extraAttributes));
}
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;
}
READ : - 这里TableType.Map不是java.util.Map,它是一个用于在数据库模式中定义列类型的声明。
else if (columnType.equals(TableType.MAP))
{
if (resultSet.getBytes(columnName) != null)
{
resultMap.put(columnName, readBytes(resultSet, columnName));
}
}
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 ();
}
catch (Exception e)
{
throw new SQLException (getClass() + ":readBytes: " + e);
}
finally
{
if (ois != null)
{
try
{
ois.close ();
}
catch (IOException e)
{
throw new SQLException (getClass() + ":readBytes: " + e);
}
}
}
return obj;
}
问题
写没有相关问题。当我要进行阅读操作时
obj = ois.readObject ();
在这一行中,obj来自:com.sun.jdi.InvocationException occurred invoking method.
因此,当我们从流中读取数据时会出现一些问题。
请帮助我在这里犯错误
由于