博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android如何连接MySQL数据库
阅读量:4964 次
发布时间:2019-06-12

本文共 1880 字,大约阅读时间需要 6 分钟。

开发中,大多数连接到远程数据库的方法是加入特定的Service到代码中。由于MySQL通常是和PHP一起使用的,最简单以及最常见的方法是写PHP脚本管理数据连接,以及从Android系统上使用HTTP协议运行这个脚本

可以以JSON格式的方式编写数据,Android和PHP之间,两种语言都很容易嵌入JSON函数。

我演示的示例代码,根据给定的条件从数据库读取数据,在Android开发平台上创建日志消息接收数据。

假设我们有个命名为PeopleData的MySQL数据库,并且使用以下的SQL语句创建了一个数据表:

 

[java]   
 
  1. CREATE TABLE `people` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,`name` VARCHAR( 100 ) NOT NULL ,`sex` BOOL NOT NULL DEFAULT '1',`birthyear` INT NOT NULL)  

想要读取people数据表中出生日期在指定年份之后的的所有数据。PHP代码是非常简单的:

1. 连接到数据库
2. 运行SQL查询,其中有个块依据于JSON格式的POST/GET值的数据。

比如,在getAllPeopleBornAfter.php文件中有这个功能:

 

[java]   
 
  1. '".$_REQUEST['year']."'");while($e=mysql_fetch_assoc($q)) $output[]=$e;print(json_encode($output));mysql_close();?>  

 

Android部分比较复杂一些:

1. 使用HttpPost获取数据,发送年份值

2. 响应的信息转化成字符
3. 解析JSON数据,读取你想要的数据。

 

[java]   
 
  1. String result = "";//the year data to sendArrayList nameValuePairs = newArrayList();nameValuePairs.add(new BasicNameValuePair("year","1980"));//http posttry{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = newHttpPost("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());}//convert response to stringtry{ 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());}//parse json datatry{ JSONArray jArray = new JSONArray(result); for(int i=0;i  

当然也可能使用HTTPS,发送密码,访问数据,或是在每一边做更多复杂的数据处理,写更多代码。

 
0

转载于:https://www.cnblogs.com/hanfeihanfei/p/5566713.html

你可能感兴趣的文章
mysqldump使用方法(MySQL数据库的备份与恢复)
查看>>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0
查看>>
注意力模型代码实现
查看>>
vue实现全选反选
查看>>
深浅拷贝,原生和JQuery方法实现
查看>>
1.- Netty设计理念-异步和事件驱动
查看>>
原始线性结构数组的实现以及操作
查看>>
css之浮动
查看>>
js的实例方法和静态方法分析
查看>>
CSS 3D旋转 hover 后设置transform 是相对于正常位置
查看>>
VIM 模板
查看>>
[转]JAVA设计模式之单例模式
查看>>
MyBatis学习总结
查看>>
1011-大数加法
查看>>
c#向指定的邮箱发送邮件
查看>>
Hibernate4.x之映射关系--单向一对多
查看>>
轮播插件unslider.min.js使用demo
查看>>
SQL Server学习之路(四):“增删改查”之“删”
查看>>
给windows系统下的linux系统的虚拟机安装jdk
查看>>
html5实践篇之drap and drop
查看>>