java如何优雅地处理更新版本中的数据库升级?
因此,我的应用程序几乎准备就绪。我一直在想,当我更新它时,数据库的升级将如何工作
基本上,这是一个测验,我将添加和删除问题,用户的个人数据需要保留例如。有多少正确答案和错误答案,针对哪些问题等
当你认为我可能想删除或添加新问题时,这会变得有点复杂,当改变结构时,情况会更糟
但是我现在需要担心这个代码吗?我认为我的应用程序的第二个版本可能包含更新代码。这将使我能够更早地发布最初的应用程序,并担心后台的升级
这可能吗?或者您必须将升级代码设置为待机状态下的
# 1 楼答案
现在应该使用^{} ,以后可以担心^{} -代码
如果增加数据库的版本号,将执行该方法。你可以在那里处理/管理你的更新
初始版本号被传递给constructor
您还可以使用} 和^{}
SQLiteDatabase
-object(传递给onUpgrade()
-method)的相应方法获取/设置它:^{# 2 楼答案
基本上
SQLiteOpenHelper.onUpgrade()
目的是让程序员在数据库的版本号发生变化时可以对数据库进行更改。在大多数情况下,它可能与数据库/表方案/结构的更改有关。不过,如果您同时处理SQLiteOpenHelper.onUpgrade()
数据库内容的更改,就不会有什么问题在我的例子中,我选择了另一种方法,因为数据库内容会被用户即时更改,所以我在XML文件(kinda templates.XML)中有资源,其中包含有关可用主数据的基本信息(如您的案例测验),在第一次打开数据库时,我只是将主数据上传到数据库。所以你也可以这么做