Android - Ruby on Rails - MySQL
Posted
技术标签:
【中文标题】Android - Ruby on Rails - MySQL【英文标题】: 【发布时间】:2013-08-04 10:31:53 【问题描述】:我已经开始开发一个 android 应用程序,我们需要使用 mysql 作为数据库并使用 Ruby on Rails 作为服务器端代码。我们也将在设备上使用 SQLLite(将在需要时同步两个数据库)。我在网上搜索并找不到任何可以作为基础的相关教程/示例。
我已经阅读了 MySQL 和 ROR 教程,但仍然对连接 Android 和 ROR 感到困惑。
有人可以分享一些相关的教程/代码 sn-p 可以解释技术的完整联系。我的意思是如何将数据从 Android 设备发送到 MySQL,反之亦然。我理论上知道这个概念,但不知道如何以及从哪里开始。
对于提出这样一个基本问题,或者如果我听起来模棱两可,但我是初学者,需要完成这项任务,我深表歉意。感谢期待..
【问题讨论】:
【参考方案1】:这里简要概述了实现目标所需了解的内容。我不会详细介绍,尤其是因为我从未亲自使用过 RoR。请注意,其中一些部分可能与 RoR 不完全相关,但其背后的总体思想仍然适用。我将留给您研究并弄清楚如何实现每个单独的组件。
一切的大致流程如下:
Android 应用 网络 网络服务 MySQL
请注意双刃箭头,因为数据将双向流动。
Android App
是客户端,Web Service
和 MySQL
数据库位于您的 Web Server
上。为了完整起见,我只包括了网络部分,但是一旦数据被发送到网络上,您就不必做任何事情。
每个部分的简要概述:
Android 应用:
Android 应用程序是从 Web 服务器发送和检索数据的客户端。我假设在您的应用程序中,您将允许用户执行一些任务,这些任务本质上成为您想要在某个时候发送到服务器的数据。
例如,用户应该能够输入他的名字和最喜欢的动物。假设有一个用户可以单击的实际“提交”按钮。单击此“提交”按钮时,它应该将数据包装成适当的格式,以便通过网络发送。最常见的两个是JSON
和XML
。正确格式化数据后,您将需要使用某种类型的网络协议(例如 HTTP
)将数据发送到服务器。为了发送数据,您当然必须有一些URL
作为目标。假设目标是www.example.com/webservice.php
。这个目标是我们位于 Web 服务器上的 Web 服务。
一旦您发送数据,服务器将响应一些数据,此时您可以对它做任何您想做的事情。可能会将其显示给用户,或者将其粘贴到 SQLite
数据库中,甚至两者兼而有之。
要记住的关键是没有魔法发生。我刚刚描述的所有内容都将在 Java 代码中实现,您将在某个时候在您的 Android 应用程序中编写这些代码。
您应该深入研究并弄清楚如何在 Java 代码中实现的关键思想:
JSON 和 XML Java 中的 HTTP REST 和 SOAP Here 是一个出色的视频,介绍了设置 Android 应用结构的可能方法。 确保您在 Android 应用程序中的所有网络操作都在不同的线程上。一个易于使用的方法是Intent Service。网络服务:
这通常是最令人困惑的部分。 Web Service
只是尝试访问Web Server
的客户端的一些入口点。使用RoR
时,我在这里的解释可能略有不同,但同样的想法也适用。请注意上面的目标URL
是www.example.com/webservice.php
。 Web 服务实际上是存在于 Web 服务器上的 PHP
代码,称为 webservice.php
。在您的 Android 应用程序中,当您使用 HTTP
向目标 URL
发送数据时,Web 服务代码将在服务器上执行(并且还可以访问您发送给它的数据)。在您的 Web 服务代码中,您基本上将提取数据(采用某种格式,如 JSON),获取必要的部分,然后对其进行处理。在这种情况下,您很可能会查询数据库。在 PHP 中,很容易编写代码来连接和查询也在服务器上运行的 MySQL 数据库。当 Web Server 检索到数据库的响应时,您可以将其发送回 Android App。 就像以前一样,记住,没有魔法发生。所有这些想法都是通过编写一些代码来实现的。
主要研究思路:
Ruby on Rails 网络服务 如何使用 Ruby on Rails 访问 MySQL 数据库MySQL 数据库:
这是您将数据存储在 Web 服务器上的位置。我不打算在这里深入讨论,因为这只是需要您大量阅读有关如何在 Web 服务器上设置 MySQL 数据库的内容。了解如何创建适当的查询(例如 SELECT
、INSERT
等)也很重要。
主要研究思路:
如何在 Web 服务器上设置 MySQL 数据库
如果您需要任何说明,请告诉我!
【讨论】:
非常感谢。这很有帮助。我将尝试用一个小应用程序来实现所有这些,看看它是否有效。再次感谢您所做的一切。 @Gaurav 如果您不介意,您能否接受/支持回复。如果出现任何问题,也可以随时问我。以上是关于Android - Ruby on Rails - MySQL的主要内容,如果未能解决你的问题,请参考以下文章
思考Ruby On Rails的底层代码(Ruby on Rails 開發秘籍 | Ruby on Rails 快速入門)
Java:在 Ruby on Rails 应用程序中创建新“产品”的 HTTP Post