请问Android怎样连接远程MySQL数据库?

如题所述

  Android客户端直接连接远程MySQL数据库的方法如下:

  String result = "";
  //首先使用NameValuePair封装将要查询的年数和关键字绑定
  ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
  nameValuePairs.add(new BasicNameValuePair("year","1980"));
  
  //使用HttpPost封装整个SQL语句
  //使用HttpClient发送HttpPost对象
  try{
  HttpClient httpclient = new DefaultHttpClient();
  HttpPost httppost = new HttpPost("http://example.com/getAllPeopleBornAfter.php");
  httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
  HttpResponse response = httpclient.execute(httppost);
  HttpEntity entity = response.getEntity();
  InputStream is = entity.getContent();
  }catch(Exception e){
  Log.e("log_tag", "Error in http connection "+e.toString());
  }
  //将HttpEntity转化为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());
  }
  
  //将String通过JSONArray解析成最终结果
  try{
  JSONArray jArray = new JSONArray(result);
  for(int i=0;i<jArray.length();i++){
  JSONObject json_data = jArray.getJSONObject(i);
  Log.i("log_tag","id: "+json_data.getInt("id")+
  ", name: "+json_data.getString("name")+
  ", sex: "+json_data.getInt("sex")+
  ", birthyear: "+json_data.getInt("birthyear")
  );
  }
  }
  }catch(JSONException e){
  Log.e("log_tag", "Error parsing data "+e.toString());
  }

  虽然Android开发中可以直接连接数据库,但是实际中却不建议这么做,应该使用服务器端中转下完成。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-13
没直接连接过数据库。我是连接的servlet然后给它查询语句,servlet查询后以xml形式返回数据。
安卓用HttpClient连接servlet,HttpClient使用详情百度有。本回答被提问者采纳
第2个回答  2013-05-06
需要用webservice ,开一个访问接口,网上有例子
相似回答