簡體   English   中英

Android - Ruby on Rails - MySQL

[英]Android - Ruby on Rails - MySQL

我已經開始研究一個Android應用程序,我們需要使用MySQL作為數據庫,使用Ruby on Rails作為服務器端代碼。 我們也將在設備上使用SQLLite(將在需要時同步DB)。 我搜索了網絡,找不到任何相關的教程/示例,可以作為開始的基礎。

我已經完成了MySQL和ROR教程,但仍然對將Android與ROR連接起來感到困惑。

有人可以分享一些相關的教程/代碼片段,可以解釋技術的完整鏈接。 我的意思是如何將數據從Android設備發送到MySQL,反之亦然。 我從理論上了解這個概念,但不知道如何以及從哪里開始。

我真誠地對提出這樣一個基本問題表示歉意,或者我聽起來含糊不清,但我是初學者,需要完成這項任務。 在預期中感謝..

以下是您應該了解的目標的簡要概述。 我不會那么詳細,特別是因為我從未親自使用過RoR。 請注意,其中一些部分可能與RoR無關,但其背后的一般概念仍然適用。 我將由您來研究並弄清楚如何實現每個單獨的組件。

一切的一般流程如下:

Android App <==>網絡<==> Web服務<==> MySQL

請注意雙刃箭頭,因為數據將在兩個方向上流動。

Android App是客戶端, Web ServiceMySQL數據庫位於Web Server 我只包含了網絡部分的完整性,但是一旦將數據發送到網絡,您就不必做任何事情。

每個部分的簡要概述:

Android應用:

Android App是從Web服務器發送和檢索數據的客戶端。 我假設在您的應用程序中,您將允許用戶執行某些任務,這些任務本質上會成為您希望在某個時刻發送到服務器的數據。

例如,用戶應該能夠輸入他的名字和喜愛的動物。 假設用戶可能會點擊一個實際的“提交”按鈕。 單擊此“提交”按鈕時,它應將數據包裝成適當的格式以通過網絡發送。 其中兩個最常見的是JSONXML 一旦數據格式正確,您將需要使用某種類型的網絡協議(如HTTP將數據發送到服務器。 為了發送數據,您當然必須有一些URL作為目標。 讓我們說目標是www.example.com/webservice.php 此目標是位於Web服務器上的Web服務。

一旦發送數據,服務器將回復一些數據,此時您可以隨意執行任何操作。 可能會將其顯示給用戶,或者將其粘貼到SQLite數據庫中,甚至兩者中。

要記住的關鍵是沒有魔法。 我剛剛描述的所有內容都將以Java代碼實現,您將在某些時候在Android應用程序中編寫。

關鍵想法你應該更多地研究並弄清楚如何在Java代碼中實現:

  • JSON和XML
  • Java中的HTTP
  • REST和SOAP
  • 是一個關於設置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服務器檢索到數據庫的響應時,您可以將其發送回Android應用程序。 和以前一樣,請記住,沒有任何魔法可言。 所有這些想法都是通過編寫一些代碼來實現的。

研究的主要思路:

  • Ruby on Rails Web服務
  • 如何使用Ruby on Rails訪問MySQL數據庫

MySQL數據庫:

您可以在此處將數據存儲在Web服務器上。 我不打算深入研究這一點,因為這只是要求您在如何在Web服務器上設置MySQL數據庫時進行大量閱讀。 學習如何創建適當的查詢(如SELECTINSERT等)也很重要。

研究的主要思路:

如何在Web服務器上設置MySQL數據庫

如果您需要任何澄清,請告訴我們!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM