我在使用 android 中的预填充数据库时遇到问题。虽然不是通常的问题。我的数据库工作得很好。
我的问题是在应用发布后添加新数据。
我花了很多时间使用 onupgrade 方法,但后来我意识到我的问题出在其他地方。一旦我在资产文件夹中的数据库中添加了新行,如何将这些添加到复制到我的数据/数据文件夹的数据库中.....
我的数据库是我存储游戏关卡信息的地方,表中的最后一列是标记关卡已完成的标志,因此我不会丢失此信息。
您可以添加一些 sql 补丁文件,然后读取它们以升级您的数据库。
我只是将它与我从Danny Remington 在 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) {
//
}