我正在尝试为db4o创建一个通用的帮助器类。
我创建了一个静态类,它应该在每个应用程序页面中作为帮助程序。
这是我的代码:
public final class DatabaseHelper implements IDatabaseHelper{
private static ObjectContainer database;
private static final String DATABASE_NAME = "MyDB.db4o";
private static final int DATABASE_MODE = 0;
private static Context ctx;
private DatabaseHelper(){
}
public DatabaseHelper(Context context) {
ctx=context;
database=null;
}
public void OpenDatabse(){
try {
if (database == null) {
EmbeddedConfiguration nc = Db4oEmbedded.newConfiguration();
database = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(),
db4oDBFullPath());
}
} catch (Exception ie) {
Log.e(DatabaseHelper.class.getName(), ie.toString());
}
}
private String db4oDBFullPath() {
return ctx.getDir("data", DATABASE_MODE) + "/" + DATABASE_NAME;
}
public void CloseDatabase() {
if (database != null) {
database.close();
}
}
public ObjectContainer getDatabaseSession() {
return database.ext().openSession();
}
}
我的问题出在OpenDatabase()
方法中。我总是得到
com.db40.ext.Db4oException:文件格式不兼容: '/data/data/personal.pier.appname/app_data/MyDB.db4o'
我尝试添加/删除最终属性。我试着一步一步地调用它。我是db4o的新手,我真的不知道怎么做。
更一般地说,是否可以创建一般辅助类?任何帮助将不胜感激。感谢
答案 0 :(得分:0)
是的,可以创建这样的通用帮助类。 db4o的最终属性可以正常工作。我还建议捕获整个堆栈跟踪以获得更多错误:
Log.e(DatabaseHelper.class.getName(), ie.toString());
如消息所示,由于某种原因,文件格式不匹配。接下来的问题是: