2013-04-11 44 views
1

我已成功地設法使用POST在我的網站上運行PHP腳本,該腳本允許電話應用程序向數據庫添加新條目(MySQL) ,並刪除一個條目。在我的Android應用程序中在本地主機上獲取MySQL的'最簡單'方法

下一步是我在過去幾個小時裏一直在努力的那一步,那就是從數據庫中獲取信息到手機上!

我想要一個方法,最初只是在開始活動和填充listview時連接到數據庫,或者將所有條目連接到數據庫,然後我計劃將信息複製到手機中的SQLite數據庫。

我可以考慮實現這個最簡單的方法是什麼? 我可以是足智多謀的,但我只需要知道我在找什麼!

+2

什麼是阻止您使用GET請求從PHP腳本中檢索數據以及?在本地緩存(SQLite或NoSQL備選方案)並隨意檢索它們! – 2013-04-11 21:24:23

+0

我不需要訪問php腳本,我只需要從MySQL DB獲取數據。有沒有辦法直接連接到它,你是說我必須創建一個網頁,檢索數據,然後在手機上訪問該腳本?我有點困惑... – 2013-04-11 21:39:32

+0

兩件事。 1.大多數移動運營商阻止對端口3306的訪問。2.大多數MySQL服務器阻止不是來自本地主機(或者非常特定的服務器子集)的連接。你最好通過網絡服務器「挖掘」(好,好)。 – 2013-04-11 21:42:59

回答

1

一般來說,你需要創建服務器API:選擇一些格式你的web服務和Android應用程序之間的交談。 然後,你總是需要請求來自服務器的一些數據,這將在上述格式返回給你在某種形式的網絡響應體。 接下來,您需要解析這些數據並填充到適配器或其他任何內容中。

注意聯網操作可能需要相當長的時間取決於你的連接,所以你不能等待它結束,以顯示你的UI - 你需要做的這異步方式,並給用戶數據正在檢索的反饋。

時下在http post請求體內傳遞的json格式非常流行。看看this tutorial on how to parse json on android和這個video about how to create json api in php

當然,您可以嘗試直接連接到遠程MySQL服務器。在某些情況下(您不需要編寫服務器端API),它確實是更簡單的解決方案,但可能不那麼容易訪問,因爲標準MySQL端口不在所有網絡中打開。另外你的API服務器可能會隱藏一些關於數據如何存儲在實際中的實現細節,從而使你可以從MySQL遷移到PostgreSQL,而無需擔心android應用程序。

不要忘記保護您的數據免受未經授權的訪問!

編輯

這是2017年這將是最簡單的方法是現在使用的開源項目,它會爲你的數據庫提供REST API,例如ArrestDBpostgrest

+0

作爲JSON的替代品,如果符合要求,可以使用RESTful API。 PS:不能投票贊成〜〜小時... – 2013-04-11 22:08:35

+0

你可以使用[Gson](https://code.google.com/p/google-gson/)解析你的Android應用 – theDazzler 2013-04-11 22:15:29

0

我本人來說不得不開發此遵循iOS和Android設備的REST API服務(基於Laravel框架,我稱之爲lRapi),並且效果很好(應用程序使用的版本更復雜)。

https://github.com/w0rldart/lRapi

有很多模型和控制器那裏,你可以使用上手。響應格式爲JSON格式,並帶有正確的標題。 我仍然需要添加更多的文檔,但在主要的示例視圖中有一些,您可以通過設置虛擬主機並在瀏覽器中打開根頁面來訪問它。

Laravel是一個MVC PHP框架,它很容易適應它。

這是避免做大部分工作的好方法,只關注於實現你需要的東西。

1

你有很多選擇。通過HTTP

  1. 更高級別的抽象像已提及的
  2. HTTP作爲明文/ CSV數據(沒有抽象)
  3. 從機器人設備的直接JDBC連接到MySQL代理(REST/SOAP /等)
  4. 數據庫中的數據導入/導出

我想你要找的選項3.即(在Android SQlite的)同步遠程數據庫,使本地,然後用本地數據的工作?在這種情況下,您只需將一個mysql-client jar(JDBC驅動程序)放入您的應用程序中即可啓動。儘管如此,還是有一些限制,如評論中已經提到的SébastienRenauld。然而,這些問題可以解決,即使用MySQL的自定義配置,或者使用可以以通用方式實現的選項(2)(只寫一次)

+0

中的JSON,這聽起來很完美,我只是把這個應用程序作爲一個概念,它可以通過Wi-Fi網絡通過本地主機運行。 我會谷歌JDBC,看看它是否適合我+在我的技能水平,謝謝! – 2013-04-11 22:48:17

+0

不好意思,我真的找不到JDBC驅動,請問你能提供一個鏈接嗎? – 2013-04-11 23:50:50

+0

驅動程序,你可以在這裏下載http://dev.mysql.com/downloads/connector/j/解壓縮文件並找到一個.jar,這是使用的驅動程序。一個示例代碼http://stackoverflow.com/questions/4447692/jdbc-connection-in-android進行連接,如果您需要超過1小時,您仍然可以回退到(2),如此處所述http:// www.basic4ppc.com/forum/basic4android-getting-started-tutorials/8339-connect-android-mysql-database-tutorial.html它寫得很好。 – comeGetSome 2013-04-12 09:00:10

相關問題