使用PHP作为中间介来实现android链接远程数据库。

PHP代码:

<?php

mysql_connect("host","username","password");

mysql_select_db("PeopleData");

$q=mysql_query("SELECT * FROM people WHERE birthyear>'".$_REQUEST['year']."'");while($e=mysql_fetch_assoc($q))

$output[]=$e;

print(json_encode($output));

mysql_close();

?>

android代码:

package lzu.ConnectMysql;

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.ArrayList;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.client.HttpClient;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.DefaultHttpClient;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import org.apache.http.NameValuePair;

import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

public class ConnectMysql extends Activity {

/** Called when the activity is first created. */

private TextView result;

private String content;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

result = (TextView)findViewById(R.id.content);

content = connecting();

result.setText(content);

//the year data to send

}

public String connecting(){

/*存放http请求得到的结果*/

String result = "";

String ss = null;

/*将要发送的数据封包 */

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

nameValuePairs.add(new BasicNameValuePair("year","1980"));

InputStream is = null;

//http post

try{

/*创建一个HttpClient的一个对象*/

HttpClient httpclient = new DefaultHttpClient();

/*创建一个HttpPost的对象*/

HttpPost httppost = new HttpPost("http://202.201.0.245/test.php");

/*设置请求的数据*/

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

/*创建HttpResponse对象*/

HttpResponse response = httpclient.execute(httppost);

/*获取这次回应的消息实体*/

HttpEntity entity = response.getEntity();

/*创建一个指向对象实体的数据流*/

is = entity.getContent();

}catch(Exception e){

System.out.println("Connectiong Error");

}

//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();

System.out.println("get = " + result);

}catch(Exception e){

System.out.println("Error converting to String");

}

//parse json data

try{

/*从字符串result创建一个JSONArray对象*/

JSONArray jArray = new JSONArray(result);

for(int i=0;i<jArray.length();i++){

JSONObject json_data = jArray.getJSONObject(i);

System.out.println("Success");

System.out.println("result " + json_data.toString());

if( i == 0){

ss = json_data.toString();

}

else{

ss += json_data.toString();

}

}

}

catch(JSONException e){

System.out.println("Error parsing json");

}

return ss;

}

}


from:http://blog.csdn.net/xiaoxiaobian3310903/article/details/6257237

更多相关文章

  1. Android--用Pull解析器将对象解析成xml文件及单元测试
  2. Xposed: 勾住(Hook) Android应用程序对象的方法,实现AOP
  3. android 反射解析xml文件成为java对象
  4. Android Binder进程间通信-ServiceManager代理对象的获取过程
  5. Android中如何使用Intent在Activity之间传递对象[使用Serializab
  6. Android Activity之间传递类对象
  7. 3-14 servlet 传出对象给 Android
  8. android 对象保存到SP

随机推荐

  1. Gradle sync failed: Could not find com
  2. 编译vlc for android
  3. android键盘映射之三
  4. Android中在sdcard上创建文件夹
  5. Android实现完整游戏循环的方法
  6. Android(安卓)App启动过程
  7. 关于Android Studio遇到的org.gradle.api
  8. 2013.12.03(2) ——— android ActionbarSh
  9. Android踩坑——mkdir方法中返回false导
  10. Android通过包名打开手机应用商城寻找所