Android 3.3 API 18
你好,能否Android應用直接連接到網上的MySQL數據庫
我發展我的第一應用採用了android。該應用程序將不得不連接到在線數據庫來存儲用戶數據。
我正在尋找包含MySQL數據庫的雲存儲。但是,我的應用程序可以直接連接到這個MySQL數據庫並從它推送和提取數據嗎?或者我還需要做其他事情嗎?
非常感謝您的任何建議,
Android 3.3 API 18
你好,能否Android應用直接連接到網上的MySQL數據庫
我發展我的第一應用採用了android。該應用程序將不得不連接到在線數據庫來存儲用戶數據。
我正在尋找包含MySQL數據庫的雲存儲。但是,我的應用程序可以直接連接到這個MySQL數據庫並從它推送和提取數據嗎?或者我還需要做其他事情嗎?
非常感謝您的任何建議,
是的,你可以做到這一點。
材料需要:
1.首先設置網絡權限我n您的清單文件
2。做一個類(我使用JSON parisng得到的值)
用於例如,從服務器 做一個HTTPRequest:
public class JSONfunctions {
public static JSONObject getJSONfromURL(String url) {
InputStream is = null;
String result = "";
JSONObject jArray = null;
// Download JSON data from URL
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
}
// Convert response to string
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
try {
jArray = new JSONObject(result);
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
return jArray;
}
}
在你MainActivity
使類的一個對象JsonFunctions
並通過URL作爲從那裏你想要得到的數據參數
如:
JSONObject jsonobject;
jsonobject = JSONfunctions.getJSONfromURL("http://YOUR_DATABASE_URL");
4.然後終於讀jsontags和值存儲在一個ArrayList,後來在列表視圖中顯示,如果你想
,如果您有任何問題,你都可以關注該博客 他給優秀的android教程AndroidHive
由於上述答案我寫了很長回來,現在HttpClient
,HttpPost
,HttpEntity
已經在阿比23.刪除您可以構建使用下面的代碼。 gradle(應用程序級別)仍然繼續在您的項目中使用org.apache.http
。
android {
useLibrary 'org.apache.http.legacy'
signingConfigs {}
buildTypes {}
}
或者您可以使用HttpURLConnection
像下面讓你從服務器
public String getJSON(String url, int timeout) {
HttpURLConnection c = null;
try {
URL u = new URL(url);
c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setRequestProperty("Content-length", "0");
c.setUseCaches(false);
c.setAllowUserInteraction(false);
c.setConnectTimeout(timeout);
c.setReadTimeout(timeout);
c.connect();
int status = c.getResponseCode();
switch (status) {
case 200:
case 201:
BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line+"\n");
}
br.close();
return sb.toString();
}
} catch (MalformedURLException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} finally {
if (c != null) {
try {
c.disconnect();
} catch (Exception ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
}
}
}
return null;
響應}
,或者你可以使用第三方庫像Volley
,Retrofit
調用Web服務的API,並得到迴應並稍後使用FasterXML-jackson
,google-gson
進行解析。
感謝您的解決方案。只是想知道你是否可以推薦任何有免費MySQL數據庫的託管站點,我的應用可以連接到這些站點。由於這位學者我沒有太多的空間帶寬。謝謝。 – ant2009
偉大的指導和感謝您的博客鏈接! – Harsha
我是一個很好的機器人。我們不得不創建一個本地數據庫,以便應用程序在晚些時候順利地完成功能。我正在研究一個類似的項目。它工作正常,直到我們連接到互聯網,但之後它不會。這是否使感覺? – timberlake
您可以使用PHP,JSP,ASP或任何其他服務器端腳本與MySQL數據庫連接,並和返回,你可以在你的Android應用它解析爲JSON數據this link how to do it
第1步:使Web服務的服務器
步驟2:使你的應用程序向Web服務的調用並接收結果集
你想要做什麼是一個壞主意。它會要求你在應用程序中嵌入你的用戶名和密碼。這是一個非常糟糕的想法,因爲它可能會反向工程APK,並獲得用戶名和密碼到這個面向公衆的可能包含敏感用戶數據的mysql服務器。
我會建議做一個web服務來充當mysql服務器的代理。我假設用戶需要登錄,所以你可以使用他們的用戶名/密碼來驗證Web服務。
可以做什麼與人們應該做的不同。你對你的擔憂絕對正確。公開用戶名和密碼是一個問題,但沒有認證的在線推拉服務可能同樣有害(特別是反編譯也暴露數據模式)。 –
是的,你肯定可以連接到MySql的在線數據庫,因爲你需要創建一個Web服務。該Web服務將爲您提供訪問MySql數據庫的權限。然後,您可以輕鬆地將數據推送到MySql數據庫。 PHP將是創建Web服務的一個很好的選擇,它很容易實現。祝你好運...
你絕對可以做這樣的應用程序,你需要通過調用一個PHP腳本來響應數據庫,這個腳本會根據你的項目運行特定的查詢,並以xml或者json的形式生成結果甲酸,這可以顯示在你的Android應用程序! 完整教程how to connect android application to mysql我建議看看這個tutorila
它實際上是很容易的。但是,你無法直接實現它。您需要選擇服務端技術。您可以爲此部分使用任何東西。這就是我們所說的RESTful API或SOAP API。這取決於你選擇什麼。 我已經完成了許多項目。我更喜歡REST。 所以會發生什麼,你會在你的Web服務器上有一些腳本,你知道這些URL。例如,我們需要進行用戶註冊。而對於這一點,我們有
mydomain.com/v1/userregister.php
現在可以從Android方面,你將發送一個HTTP請求到上述網址。上面的URL將處理用戶註冊,並會給你一個響應,說明操作是否成功。
有關上述概念的完整詳細說明。您可以訪問以下鏈接。
是U U可以根據需要編寫服務器端代碼,要麼在PHP或.NET – KOTIOS
我想這可能有助於全力爲您 [見此帖] [1 ]:http://stackoverflow.com/questions/11324939/how-to-access-online-mysql-database-in-android – prakash
http://androidbash.com/connecting-android-app-to-a-database- using-php-and-mysql /這裏的數據正在從後端數據庫填充。 – SRBhagwat