【问题标题】:Android - Copy remote database's contents to a local database with SQLiteAndroid - 使用 SQLite 将远程数据库的内容复制到本地数据库
【发布时间】:2015-04-26 17:38:25
【问题描述】:

我有一个远程 SQL 数据库(即存储在服务器中的数据库)。我正在开发一个 Android 应用程序,它会定期建立连接,以使用 SQLite 将所有远程数据库的表(及其内容)复制到本地数据库。

在 Android SDK 中是否有任何标准化的方式来执行此操作?

我所经历的:

我考虑过以 JSON 格式请求远程数据库的内容,然后在 Android 中解析该 JSON 代码,然后使用 SQLite 将其包含在本地数据库中。不知道这对于大量数据的效率如何,是否存在更好的(不那么痛苦)方法。

【问题讨论】:

    标签: android json database sqlite


    【解决方案1】:

    没有内置的方法可以做到这一点。人们想要调整事物的方式也不可能太多,最好留给开发人员或第 3 方库。

    真正最简单的方法是在服务器上每小时构建一个 SQLite 数据库,然后让客户端下载该文件。这样您就不必进行复杂且昂贵的 JSON 解析和 SQLite 插入。当然,这种方式总是会有点过时,但如果这是一个问题,你需要质疑本地缓存是否是一个好主意。

    【讨论】:

    • 这实际上可能比以某种中间格式导入数据更聪明。任何不使用实际实时数据库连接的解决方案都会有一些滞后..
    • @Gabe Sechan 远程 SQL 数据库已经建立并且现在被大量填充(有几十个表、列和数据)。您是否认为将 SQL 转换为 SQLite(以便允许“从 Android 下载数据库”)比必须实现 JSON 解析器和 SQLite 插入更便宜(以小时计)?非常感谢。
    • 是的。无论如何,您或多或少都必须这样做-您可以将服务器端脚本编写为 SELECT * from TABLEX 然后循环游标并插入到 SQLite 数据库中(请记住 SQLite 也存在于桌面上,您只能有 2 个数据库句柄在您的应用程序中)。应该是一个非常简单的脚本 - 创建所有表,循环并插入。
    【解决方案2】:

    虽然理论上可能实现与远程数据库的连接,但我认为您自己的想法是有道理的。在 db 前实现标准的 RESTful Web 服务,或研究此类服务的现有开箱即用解决方案,并使用 json 返回数据。解析 json 并将其存储在本地 sqlite 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多