Android 如何在sqlite数据库中存储对象?
是否可以从Android将用户定义的对象存储在SQLite数据库中?例如:我正在创建一个类,我想将该类对象存储在数据库中。可能吗?如果是,如何进行?在Blackberry平台上,我可以将对象直接存储在持久对象中。使用SQLite和Android可以做到这一点吗?您需要能够将对象序列化为字节流,然后从字节流重新创建对象 然后,只需将该字节流存储在数据库中 编辑:Android 如何在sqlite数据库中存储对象?,android,Android,是否可以从Android将用户定义的对象存储在SQLite数据库中?例如:我正在创建一个类,我想将该类对象存储在数据库中。可能吗?如果是,如何进行?在Blackberry平台上,我可以将对象直接存储在持久对象中。使用SQLite和Android可以做到这一点吗?您需要能够将对象序列化为字节流,然后从字节流重新创建对象 然后,只需将该字节流存储在数据库中 编辑: 阅读以了解Java中的序列化。它以一种比我仅仅给出一些代码片段更好的方式来迎合主题。与其将它们存储在SQLite中,不如将它们存储在SQ
阅读以了解Java中的序列化。它以一种比我仅仅给出一些代码片段更好的方式来迎合主题。与其将它们存储在SQLite中,不如将它们存储在SQLite中,后者是专门为存储对象而设计的。使用db4o对对象进行排序的简单方法。使用此代码将对象转换为字节数组,并将其作为“BLOB”存储在数据库中
使用此代码再次将字节数组转换为对象
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;
}
你能给我一些代码片段来做对象的序列化吗?我编辑了答案,并给了一篇文章的链接,这篇文章教你如何做对象序列化。链接指向Oracle Java的起始页,其中没有关于序列化的信息。再详细一点就更好了!我的印象是,SQLite实际上用于在DB中快速存储对象。我在其他应用程序中使用过它。我们真的不能像在非Android应用程序中那样使用SQLite吗?如果必须执行SQL语句,那么为什么要在android上使用SQLite呢?我不明白。为什么他们会包括SQLite呢?原则上DB4O是很棒的。它非常容易使用。但不幸的是,它有很多bug,开发/维护似乎已经完全停止。非常可悲的情况。
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;
}