使用房间连接到 Android 上的数据库

Posted

技术标签:

【中文标题】使用房间连接到 Android 上的数据库【英文标题】:Connecting to database on Android using room 【发布时间】:2018-08-14 20:42:21 【问题描述】:

我一直在研究数据库和持久性库 Room 以允许对我的 android 应用程序进行实时更新,但我很难掌握 Room 与数据库的真正通信方式。我不确定我对它的使用方式有正确的想法。

我想象的是将我的 android 应用程序连接到远程数据库,应用程序上的用户可以进行更改,当这些更改被推送到数据库时,它会自动更新该数据库中的所有其他活动用户数据。如果相关,这是我正在运行的谷歌地图应用程序的一部分。

(我现在不关心任何安全措施,因为这只是为了证明概念)

我需要做的一切都是Room 库的一部分,还是我缺少一些东西?如果是这样,推荐的库是什么。我需要的部分再次是: 1. 连接远程数据库 2. 从数据库中提取值以初始化应用程序 3. 从应用程序更改数据库值(管理员模式) 4. 将这些更改推送到远程数据库 5. 使用数据库上的新更改更新在其他 android 设备上运行的所有其他活动应用程序

如果我完全偏离主题,如果有人能指出我正确的方向,我将不胜感激。

【问题讨论】:

【参考方案1】:

我需要执行此操作的所有内容都是 Room 库的一部分,还是我缺少某些部分?我

房间与这些无关。

Room 用于设备上的本地 SQLite 数据库。 Room 与您的 Web 服务通信无关。

【讨论】:

好的,谢谢,我担心是这样,但我无法确定。既然是这种情况,我的问题很离题,所以我会删除它,但是你能指出我应该如何去做我发布的事情吗?我觉得应该有一个简单的库来解决这个问题,但我找不到任何东西 @TravisHerbert:“我觉得应该有一个简单的库”——这真的取决于你认为“远程数据库”的意思。您应该首先专注于寻找满足您需求的“远程数据库”,然后找出适用于它的 Android 连接选项。因此,例如,如果您决定使用托管 GraphQL 数据库(例如 Graphcool),您可以使用 Apollo-Android 与 GraphQL Web 服务端点进行交互。或者,您可以将 Retrofit 用于 REST Web 服务。或者“远程数据库”可能有自己的 Android 客户端库。 这个数据库服务器是我自己设置的。我看了其中一些,我认为改造是我正在寻找的。如果我从我的简短阅读中了解到我使用 java 接口(类似于 room 及其 localdb)来创建查询,我使用这个接口在我的 java 对象和数据库之间进行通信 @TravisHerbert:Retrofit 是一个用于 REST 样式 Web 服务的客户端库。如果您打算创建一个 REST 样式的 Web 服务(由某个数据库支持),那么 Retrofit 可能是用于与该 Web 服务进行通信的候选对象。 感谢您提供的所有信息,这些信息让我清楚了我需要从哪里开始。第一次进入数据库有点不知所措,所以我感谢您的帮助 XD

以上是关于使用房间连接到 Android 上的数据库的主要内容,如果未能解决你的问题,请参考以下文章

无法连接到 android KivyMD 上的 mysql 数据库

无法将 Android 连接到 PostgreSQL 数据库

如何从不同网络上的android连接到本地apache服务器?(端口转发)

从 ios 和 android 端连接到 xmpp 时获取所有组消息

Android 连接到远程 mysql 数据库 JDBC Vs JSON

使用 Telnet 连接到 Android 上的 Socket 服务器