Android预填充数据库 - 在发布后添加新的预填充行

时间:2015-10-25 23:25:18

标签: android sql database sqlhelper

我在android中使用预填充数据库时遇到问题。不过通常的问题。我的数据库运行得很好。

我的问题是在应用发布后添加新数据。

我花了很多时间使用onupgrade方法,但后来我突然意识到我的问题出在其他地方。在我的资源文件夹中将新行添加到数据库后,如何将这些行添加到复制到我的数据/数据文件夹的数据库中.....

我的数据库是存储游戏级别信息的地方,表格中的最后一列是标记完成级别的标志,所以我不能丢失这些信息。

1 个答案:

答案 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) {
    //
}