我在android中使用预填充数据库时遇到问题。不过通常的问题。我的数据库运行得很好。
我的问题是在应用发布后添加新数据。
我花了很多时间使用onupgrade方法,但后来我突然意识到我的问题出在其他地方。在我的资源文件夹中将新行添加到数据库后,如何将这些行添加到复制到我的数据/数据文件夹的数据库中.....
我的数据库是存储游戏级别信息的地方,表格中的最后一列是标记完成级别的标志,所以我不能丢失这些信息。
答案 0 :(得分:1)
您可以添加一些sql补丁文件,然后阅读它们以升级您的数据库。
我只使用了从Danny Remington's post on SO复制的FileHelper静态类,然后执行:
try {
InputStream in = mgr.open(assetFile);
String[] statements = FileHelper.parseSqlFile(in);
dao.mDb.execSQL("BEGIN TRANSACTION;");
/*dao.mDb is a reference to the SQLiteDatabase from my dao*/
for (String statement : statements) {
dao.mDb.execSQL(statement);
}
dao.mDb.execSQL("COMMIT;");
in.close();
} catch (IOException e) {
//
}