如何将数据库信息保存到android中的文件?

问题描述:

我有一个应用程序使用预先受到数据管理的数据库来列出事件。该应用程序允许用户将这些事件保存到他们的收藏夹,方法是在列“isFavorite”上设置'1'。然后,用户只能查看“收藏”事件列表,搜索所有具有isFavorite = 1的行。如何将数据库信息保存到android中的文件?

如果事件发生任何变化,或者需要添加更多列表,我必须将这些事件然后将更新推送到完全写入表格的应用程序,并清除他们的收藏夹。

有没有什么办法可以在升级时保存已设置为其收藏夹的所有事件的ID列表,然后在加载新数据库后将该列表中的所有ID设置为1所以用户不会失去他们最喜欢的数据?

如果还有其他更好的解决方案来解决这个问题,我真的很感激它,这对我来说是迄今为止最大的障碍。

难道你不能在你的数据库设计中应付这样的问题吗?拥有一个拥有id的用户收藏夹表。只要这些ID不改变升级不会影响它肯定?

+0

我不太熟悉Android/SQL设计,但是我当前的设置包含预填充的SQL数据库文件,该文件被加载到资产文件夹中,如果应用程序需要更新,它将删除活动数据库并重新导入更新数据库使用新的文件,这有效地清除了他们在那时会改变的所有用户数据。我敢肯定,这不是最好的方法,但我还没有找到任何其他方式来做到这一点。 – Tag 2011-05-18 21:37:49

+0

对 - 为什么没有“用户”数据库,您可以使用版本控制功能在需要时进行升级? – diagonalbatman 2011-05-19 12:48:23

一种可能的解决方案是备份部分或全部数据库以便稍后恢复。我发现本指南非常方便http://www.screaming-penguin.com/node/7749

或者,您可以将他们的收藏保存为SharedPreferences。 http://developer.android.com/reference/android/content/SharedPreferences.html了解更多信息。

我想,你有一个SQLiteOpenHelper级?这个类必须扩展,然后提供两个函数:onCreate(在数据库被查询并且它不存在时调用(通常首先创建数据库))和onUpdate(当数据库结构应该是查询时更新)。

onUpdate -method有一个SQLiteDatabase -Object参数,它是你的数据库。然后你可以查询你需要的信息,保存它们,然后创建新的数据库表。之后,您可以将保存的数据重新插入数据库。