【问题标题】:Android | SQLLite : Pre-created database updating without using SQLiteOpenHelper安卓 | SQLite : 预先创建的数据库更新而不使用 SQLiteOpenHelper
【发布时间】:2012-04-09 08:39:41
【问题描述】:

我的应用使用 SQLite 数据库获取信息。我有一个功能可以检查文件夹和数据库是否已经存在,如果不存在,它将上网(目前我正在使用 dropbox 存储 db 文件)并下载数据库并将其存储在 sd卡,然后我会打开数据库。数据库是可写的,因为它允许用户对对象进行评分。我有两个问题。

1.) 如果版本号更高,我很乐意提供数据库更新,然后让我的应用程序更新数据库并替换现有的。我做了一些研究,根据我的发现,可以存储带有版本号的 xml 或 json 文件,只需解析信息,如果版本号更高,请下载新数据库。

有人可以提供一个例子来说明这是如何完成的,以及使用 xml 还是 json 来完成这项任务是否更好?

2.) 有没有办法在下载和访问新版本时将评级保存在新版本的数据库中?

谢谢

【问题讨论】:

  • SQLiteDatabase.html#setVersion(int) 是 SQLiteOpenHelper 用来设置版本的。你也可以用那个。如果您想直接从 sqlite 执行此操作,则为 PRAGMA user_version

标签: java android xml sqlite sql-update


【解决方案1】:

两天前我写了类似的东西。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多