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 ServiceMySQL 数据库位于您的 Web Server 上。为了完整起见,我只包括了网络部分,但是一旦数据被发送到网络上,您就不必做任何事情。

每个部分的简要概述:

Android 应用:

Android 应用程序是从 Web 服务器发送和检索数据的客户端。我假设在您的应用程序中,您将允许用户执行一些任务,这些任务本质上成为您想要在某个时候发送到服务器的数据。

例如,用户应该能够输入他的名字和最喜欢的动物。假设有一个用户可以单击的实际“提交”按钮。单击此“提交”按钮时,它应该将数据包装成适当的格式,以便通过网络发送。最常见的两个是JSONXML。正确格式化数据后,您将需要使用某种类型的网络协议(例如 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 时,我在这里的解释可能略有不同,但同样的想法也适用。请注意上面的目标URLwww.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 数据库的内容。了解如何创建适当的查询(例如 SELECTINSERT 等)也很重要。

主要研究思路:

如何在 Web 服务器上设置 MySQL 数据库

如果您需要任何说明,请告诉我!

【讨论】:

非常感谢。这很有帮助。我将尝试用一个小应用程序来实现所有这些,看看它是否有效。再次感谢您所做的一切。 @Gaurav 如果您不介意,您能否接受/支持回复。如果出现任何问题,也可以随时问我。

以上是关于Android - Ruby on Rails - MySQL的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails 生成模型

思考Ruby On Rails的底层代码(Ruby on Rails 開發秘籍 | Ruby on Rails 快速入門)

Java:在 Ruby on Rails 应用程序中创建新“产品”的 HTTP Post

ruby on rails如何安装

ruby on rails - 问题捆绑安装nokogiri 1.7.2 on ruby on rails 4.x.

Ruby on Rails入门篇