å¦ä½è¿æ¥androidåphp mysqlæ°æ®åº
æ们å
æ¥çä¸ä¸ªç®åçAndroid appä¾åï¼è¿éæ¯ä¸ä¸ªåååè´§æ¸
å项ç®ï¼ï¼å¨Androidç¨åºä¸ï¼æ们å¯ä»¥è®¿é®ï¼callï¼PHPèæ¬æ¥æ§è¡ç®åçCRUDæä½ï¼å建ï¼è¯»åï¼æ´æ°ï¼å é¤ï¼ã为äºä½¿ä½ 对å®çä½ç³»ç»ææä¸ä¸ªå¤§æ¦çäºè§£ï¼è¿éå
说ä¸ä¸å®æ¯æä¹å·¥ä½çãé¦å
ä½ çAndroid项ç®è®¿é®ï¼callï¼PHPèæ¬æ¥æ§è¡ä¸æ¡æ°æ®æä½ï¼æ们称å®ä¸ºâå建âãç¶åPHPèæ¬è¿æ¥MySQLæ°æ®åºæ¥æ§è¡è¿ä¸ªæä½ãè¿æ ·ï¼æ°æ®ä»Androidç¨åºæµåPHPèæ¬ï¼æç»åå¨å¨MySQLæ°æ®åºä¸ã
好äºï¼è®©æ们æ¥æ·±å
¥ççä¸ä¸ã
请注æï¼è¿éæä¾ç代ç åªæ¯ä¸ºäºä½¿ä½ è½ç®åçè¿æ¥Android项ç®åPHPï¼MySQLãä½ ä¸è½æå®ä½ä¸ºä¸ä¸ªæ åæè
å®å
¨ç¼ç¨å®è·µãå¨ç产ç¯å¢ä¸ï¼çæ³æ
åµä¸ä½ éè¦é¿å
使ç¨ä»»ä½å¯è½é ææ½å¨æ³¨å
¥æ¼æ´ç代ç ï¼æ¯å¦MYSQL注å
¥ï¼ãMYSQL注å
¥æ¯ä¸ä¸ªå¾å¤§çè¯é¢ï¼ä¸å¯è½ç¨åç¬çä¸ç¯æç« æ¥è¯´æ¸
æ¥ï¼å¹¶ä¸å®ä¹ä¸å¨æ¬æ讨论çèå´å
ï¼æ以æ¬æä¸ä»¥è®¨è®ºã
1. ä»ä¹æ¯WAMP Server
WAMPæ¯Windows,Apache,MySQLåPHP,Perl,Pythonçç®ç§°ãWAMPæ¯ä¸ä¸ªä¸é®å®è£
ç软件ï¼å®ä¸ºå¼åPHP,MySQL Webåºç¨ç¨åºæä¾ä¸ä¸ªç¯å¢ãå®è£
è¿æ¬¾è½¯ä»¶ä½ ç¸å½äºå®è£
äºApache,MySQLåPHPãæè
ï¼ä½ ä¹å¯ä»¥ä½¿ç¨XAMPã
2. å®è£
å使ç¨WAMP Server
ä½ å¯ä»¥ä»
http://www.wampserver.com/en/ä¸è½½WAMPï¼å®è£
å®æä¹åï¼å¯ä»¥ä»å¼å§->ææç¨åº->WampServer->StartWampServerè¿è¡è¯¥ç¨åºã
å¨æµè§å¨ä¸è¾å
¥
http://localhost/æ¥æµè¯ä½ çæå¡å¨æ¯å¦å®è£
æåãåæ ·çï¼ä¹å¯ä»¥æå¼
http://localhost/phpmyadminæ¥æ£éªphpmyadminæ¯å¦å®è£
æåã
3. å建åè¿è¡PHP项ç®
ç°å¨ï¼ä½ å·²ç»æä¸ä¸ªè½å¼åPHPåMYSQL项ç®çç¯å¢äºãæå¼å®è£
WAMP Serverçæ件夹ï¼å¨æççµèä¸ï¼æ¯C:\wamp\ï¼ï¼æå¼wwwæ件夹ï¼ä¸ºä½ ç项ç®å建ä¸ä¸ªæ°çæ件夹ãä½ å¿
é¡»æ项ç®ä¸ææçæ件æ¾å°è¿ä¸ªæ件夹ä¸ã
æ°å»ºä¸ä¸ªå为android_connectçæ件夹ï¼å¹¶æ°å»ºä¸ä¸ªphpæ件ï¼å½å为test.phpï¼å°è¯è¾å
¥ä¸äºç®åçphp代ç ï¼å¦ä¸æ示ï¼ãè¾å
¥ä¸é¢ç代ç åï¼æå¼
http://localhost/android_connect/test.phpï¼ä½ ä¼å¨æµè§å¨ä¸çå°âWelcome,I am connecting Android to PHP,MySQLâï¼å¦æ没ææ£ç¡®è¾å
¥ï¼è¯·æ£æ¥WAMPé
ç½®æ¯å¦æ£ç¡®ï¼
test.php
4. æå¼MainScreenActivity.java为main_screen.xmlæ件éç两个æé®æ·»å ç¹å»äºä»¶
MainScreenActivity.java
7. æ·»å ä¸ä¸ªæ°äº§åï¼åå
¥ï¼
å建ä¸ä¸ªæ°çviewåactivityæ¥åMySQLæ°æ®åºæ·»å æ°äº§åã
æ°å»ºä¸ä¸ªç®åç表åï¼å建æä¾è¾å
¥äº§åå称ï¼ä»·æ ¼åæè¿°çEditText
add_product.xml
8. æ°å»ºä¸ä¸ªActivityæ¥å¤çåMySQLæ°æ®åºæå
¥æ°äº§åã
æ°å»ºå为NewProductActivity.javaçæ件ï¼è¾å
¥ä»¥ä¸ä»£ç ãå¨ä¸é¢ç代ç ä¸
é¦å
ï¼ä»EditTextè·å¾ç¨æ·è¾å
¥ç产åæ°æ®ï¼æ ¼å¼åæåºæ¬åæ°æ ¼å¼
ç¶åï¼åcreate_product.phpåé请æ±ï¼éè¿HTTP POSTå建ä¸ä¸ªæ°ç产å
æåï¼ä»create_product.phpè·åjsonè¿åå¼ï¼å¦æsuccesså¼ä¸º1ï¼æ°å¾å°çå表ä¸å°±å å
¥äºæ°å¢ç产åã
NewProductActivity.java
11. JSONParserç±»
æç¨ä¸ä¸ªJSONParserç±»ä»URLè·å¾JSONæ ¼å¼çæ°æ®ãè¿ä¸ªç±»æ¯æ两ç§http请æ±ï¼GETåPOSTæ¹æ³ä»URLè·åJSONæ°æ®
JSONParser.java
packagecom.example.androidhive; importjava.io.BufferedReader; importjava.io.IOException; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.io.UnsupportedEncodingException; importjava.util.List; importorg.apache.http.HttpEntity; importorg.apache.http.HttpResponse; importorg.apache.http.NameValuePair; importorg.apache.http.client.ClientProtocolException; importorg.apache.http.client.entity.UrlEncodedFormEntity; importorg.apache.http.client.methods.HttpGet; importorg.apache.http.client.methods.HttpPost; importorg.apache.http.client.utils.URLEncodedUtils; importorg.apache.http.impl.client.DefaultHttpClient; importorg.json.JSONException; importorg.json.JSONObject; importandroid.util.Log; publicclassJSONParser { staticInputStream is = null; staticJSONObject jObj = null; staticString json = ""; // constructor publicJSONParser() { } // function get json from url // by making HTTP POST or GET mehtod publicJSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) { // Making HTTP request try{ // check for request method if(method == "POST"){ // request method is POST // defaultHttpClient DefaultHttpClient httpClient = newDefaultHttpClient(); HttpPost httpPost = newHttpPost(url); httpPost.setEntity(newUrlEncodedFormEntity(params)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); }elseif(method == "GET"){ // request method is GET DefaultHttpClient httpClient = newDefaultHttpClient(); String paramString = URLEncodedUtils.format(params, "utf-8"); url += "?"+ paramString; HttpGet httpGet = newHttpGet(url); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } } catch(UnsupportedEncodingException e) { e.printStackTrace(); } catch(ClientProtocolException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } try{ BufferedReader reader = newBufferedReader(newInputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = newStringBuilder(); String line = null; while((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); json = sb.toString(); } catch(Exception e) { Log.e("Buffer Error", "Error converting result "+ e.toString()); } // try parse the string to a JSON object try{ jObj = newJSONObject(json); } catch(JSONException e) { Log.e("JSON Parser", "Error parsing data "+ e.toString()); } // return JSON String returnjObj; } }
å°è¿éï¼æ¬æç¨å°±ç»æäºã