DB4O关闭()擦拭DB?

时间:2010-11-23 14:28:58

标签: android database db4o object-persistence

我正在使用db4o在Android应用程序中存储不同的对象。我从服务器获取json内容,然后将它们存储到我存储在db4o文件中的Objects(这里是联系人)中。

ObjectContainer mainDB = Db4oEmbedded.openFile(dbConfig(), DB_MAIN);
mainDB.store(aContact);

现在,如果我直接进行查询以从数据库中恢复它,它就可以工作。

try {
ObjectSet<Contact> result = db.queryByExample(Contact.class);
contacts = new ArrayList<Contact>(result);
} catch (Exception e) {
e.printStackTrace();
}

我可以循环播放arraylist并且联系人在那里,我可以打印他们的名字和其他fiels。但现在如果我关闭de db:

mainDB.close();

如果我用相同的代码重新打开它,那里面就没有了,contacts.size()会返回0。 怎么了?任何的想法?提前谢谢......

2 个答案:

答案 0 :(得分:1)

如果你尝试使用SODA查询而不是查询,那么它有效吗?

答案 1 :(得分:0)

Environment.getExternalStorageState()的结果是什么? dir可能存在问题。 如果您将Context.getExternalFilesDir()作为目录或getExternalStoragePublicDirectory()尝试会发生什么?

打开容器时如果使用此目录会怎样?

ctx.getDir(“data”,0)+“/”+“db.file”;

其中ctx是应用程序上下文。