如何维护sqlite本地数据库并在线更新..?

Posted

技术标签:

【中文标题】如何维护sqlite本地数据库并在线更新..?【英文标题】:How to maintain sqllite local database and update online..? 【发布时间】:2013-02-05 11:50:40 【问题描述】:

我无法按正确的顺序提出问题。 让我解释一下我想要实现的目标。 我正在开发使用本地数据库的 android 应用程序,我将其放在 Asset 文件夹中。 安装应用程序时仅安装一次数据库 稍后我将它从资产复制到数据文件夹并执行我所有的只读查询操作。 一切正常。 现在我的问题是数据库会经常每周更新一次。 什么是最好的方法,而不是每次更新整个应用程序来更新数据库 我在想 如果数据库版本已更新,则应用程序应从 Internet 下载新数据库(我不知道如何实现)并将其用于查询操作。 如果用户在 db 中插入某些内容,是否可以更新数据库 在我的情况下,用户将给出评分和 cmets,它们将在 db

中更新

因为这是我的第一个 android 应用程序。我完全不知道如何实现它。 我想就我的问题获得任何意见。 :)

【问题讨论】:

更新数据库时使用 GCM (PushNotification) 功能。当然使用 JSON 或 XML 进行数据保存/传输。 【参考方案1】:

如果您的数据库每周更新一次,那么您可以轻松地将数据库联机。您可以使用 php 脚本连接到 mysql 服务器。网上有很多可用的资源。 以下是一些:

Connect MySQL with Android

how-to-connect-android-with-php-mysql

这些是基本教程。您可以根据自己的要求更改逻辑。

希望对你有帮助。

【讨论】:

【参考方案2】:

将数据库保存在资产文件夹中将是一件永久性的事情。如果您的数据库需要更新,我建议您使用在线数据库,我的意思是将您的数据库保存在在线服务器中。现在,当您想要执行任何 CRUD 操作时,您可以通过使用 php 连接到 mySQL 数据库来完成。希望这会有所帮助!

【讨论】:

能否请您指出我可用于参考的此类 android 应用程序的任何示例。 您可以使用有关如何获取数据并将数据发送到服务器的在线教程。很多安卓应用都使用在线数据,你问我要代码吗? 不,我不是。我只是要求参考。我喜欢自己编写代码,但有参考总是好的。感谢您的建议【参考方案3】:

这在我看来是一种很奇怪的方法,为什么不从 Web 仅加载 JSON、xml 或任何其他格式的更改数据并根据更改的数据运行 db 更新?

编辑:在评论中回答您的问题:

我想你应该先学习一些sql和一些服务端语言(我选择的语言是python,但很多人会选择ruby,不要去php..)然后找到合适的软件架构。要么使用 REST api 公开一个在线数据库,然后使用数据对本地数据库进行一次 sql 更新,要么直接在应用程序中使用它(将更多工作卸载到服务器,但需要支付延迟)。您还可以在服务器端使用 mongodb(一个 NOSQL 数据库)并直接使用 REST 进行查询。或者只需每周一次加载包含您需要的所有数据的 JSON,并将其用作一种本地数据库而不是 sqlite。没有简短的答案或简短的方法来回答您的问题。您应该学习不同的技术,并决定哪种方法适合您的特定用例。但任何技术堆栈都可能包含以下内容:

    服务器端数据库(也许还有一些逻辑) 一种公开数据库和(REST?websockets?文件下载?)从服务器查询新数据并使用新数据更新的方法。 安全、授权、身份验证等级别来保护服务器数据库和逻辑

    app local db(sqllite,只是一个包含数据的对象,任何其他方式的本地静态文件),可以非常小,驻留在内存中,可以是整个应用程序。

    应用逻辑、视图等,包括应用如何查询本地/远程数据库、启动本地和远程数据库之间的连接

    软件测试 - 所以重构不会中断 本地和远程调试工具链 一些代码仓库管理(Git 现在很热,但始终是最佳选择)

【讨论】:

这可能是解决方案。由于我在这方面的知识非常少,请您指出一些文档或示例或任何对我有帮助的东西 @sandeep_jagtap 详细说明了我的回答以回答您的问题。玩得开心,前路漫漫 非常感谢!这就是我需要的。我会继续努力,一旦成功,我会用所有细节更新我的答案 @sandeep_jagtap 如果这回答了您的问题,请接受答案。这是一个社区驱动的问答网站,通过接受答案获得积分..

以上是关于如何维护sqlite本地数据库并在线更新..?的主要内容,如果未能解决你的问题,请参考以下文章

将本地 sqlite 文件发送到服务器

如何访问本地数据库?

从服务器同步时如何构建本地数据库以删除行

有没有办法对通过 Azure 移动服务同步更新的本地 Sqlite 做出反应?

如何从 iOS 中的本地服务器连接到本地数据库

如果没有更新,firebase在线数据库如何工作?