是否可以将用户定义的对象存储在Android的SQLite数据库中?例如:我正在创建一个类,我想将该类对象存储在数据库中。可能吗?如果是,怎么办?在Blackberry平台上,我能够将对象直接存储在持久对象中。是否可以使用SQLite和Android执行此操作?
答案 0 :(得分:23)
您需要能够将对象序列化为字节流,然后从字节流中重新创建对象。
然后,只需将该字节流存储在数据库中。
编辑: 阅读this article以了解Java中的序列化。它通过提供一些代码片段以比我能够更好的方式迎合主题。
答案 1 :(得分:6)
答案 2 :(得分:1)
使用此代码将您的对象转换为字节数组,并将其存储为数据库中的“ BLOB”
public byte[] makebyte(Dataobject modeldata) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(modeldata);
byte[] employeeAsBytes = baos.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(employeeAsBytes);
return employeeAsBytes;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
使用此代码将字节数组再次转换为对象
public Dataobject read(byte[] data) {
try {
ByteArrayInputStream baip = new ByteArrayInputStream(data);
ObjectInputStream ois = new ObjectInputStream(baip);
Dataobject dataobj = (Dataobject ) ois.readObject();
return dataobj ;
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}