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

请问Android怎样连接远程MySQL数据库?,第1张

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=0i<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开发中可以直接连接数据库,但是实际中却不建议这么做,应该使用服务器端中转下完成。

直接 *** 作是办不到的,而且这样很不安全。

有方法达到你想要的效果,具体如下。

建议:在客户端和服务端之间写一个自己的通信协议。

比如:客户端要更改、删除服务端的数据,就给服务端发送一个报文:“删除”+表名+条件。

服务端这么接到后,就调用服务端的程序,将接到的报文转化为sql语句执行即可。

简单的一个流程就是上面那样子啦,有点像QQ和QQ服务器的一个交互过程。

补充:如果楼主对TCP/IP协议比较了解的话,上面的过程可以轻松实现。现实中的应用例子也是这样,谁也不会让Client直接 *** 作数据库的,那无异于自杀。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6460116.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-22
下一篇 2023-03-22

发表评论

登录后才能评论

评论列表(0条)

保存