将平面文件加载到Android数据库表中

时间:2010-01-21 19:07:23

标签: database android sqlite

在Android中升级数据库时,所有数据都会丢失。

我正在经历一个正在开发的阶段,这正在迫使许多数据库升级。

每次升级数据库时,我都不想丢失所有数据(并且必须手动重新输入)。

我希望将数据存储在平面文件中,并在每次数据库升级时将这些平面文件加载到各自的表中。

Android平台上有什么方法可以解决这个问题?我应该在哪里存储数据文件(res/raw

我应该执行什么样的SQL来加载这些文件?

2 个答案:

答案 0 :(得分:2)

mbaird有一个很好的答案来存储平面文件。但在您的情况下(如果我理解正确的话),您可以通过实施SQLiteOpenHelper来解决这个问题。只需存储数据库版本并将其传递给构造函数。然后处理onUpgrade()中的任何更改。您不会丢失所有数据。

答案 1 :(得分:1)

我将平面文件放在res/raw中,除非它们是XML,在这种情况下我会将它们放在res/xml中。

至于在数据库中插入数据,我只是遍历平面文件中的值并为每一行插入。

快速浏览一下,我没有在Android中看到任何批量插入方法。

根据文件类型,使用FileReaderXmlPullParser阅读平面文件。