Android | SQLLite : 不使用SQLiteOpenHelper更新预先创建的数据库

4
我的应用程序使用SQLite数据库存储信息。我有一个函数来检查文件夹和数据库是否已经存在,如果不存在,它将从互联网上下载数据库(目前我使用Dropbox存储db文件)并将其存储在SD卡上,然后打开数据库。数据库是可写的,因为它允许用户对对象进行评分。我有两个问题。
1.) 我想提供数据库更新功能,并在版本号更高时更新数据库并替换现有的数据库。我已经做了一些研究,从我的发现来看,可以存储一个带有版本号的xml或json文件,只需解析信息,如果版本号更高,则下载新的数据库。
请问有人能提供如何完成这个任务的示例,以及在此任务中使用xml或json哪种方式更好?
2.) 在下载和访问新版本的数据库时,是否有办法保存评分?
谢谢

1
SQLiteDatabase.html#setVersion(int) 是 SQLiteOpenHelper 用来设置版本的方法。你也可以使用它。如果你想直接从 SQLite 中执行此操作,可以使用 PRAGMA user_version - zapl
1个回答

1

两个晚上前我写了这样的东西。

  • 将数据库结构打包成一个数组,通过读取字段名称和字段类型在webservice方法中。数组的结构是任意的。
  • 调用web服务方法,您必须接收一个字符串,该字符串表示一个JSONArray对象,如果您使用php中的json_encode()方法将其作为json发送。
  • 读取结构并使用for循环创建CREATE DB查询字符串。
  • 执行查询,因此您必须拥有数据库。
  • 还可以使用数组发送大量信息。
  • 介绍每个部分都很困难,因此对于每个部分,请使用Google搜索。
  • 不要忘记将字段类型转换为匹配SQLite类型,例如VARCHAR => TEXT,smallint => INTEGER等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接