在android程序中连接MySQL数据库

2014-09-24 12:13来源:中国存储网

导读:如何连接MySQL数据库,Android开发中,大多数连接到远程MySQL数据库的方法是加入特定的Service到代码中。由于MySQL通常是和PHP一起使用的,最简单以及最常见的方法是写PHP脚本管理数据连接,以及从Android。

介绍Android开发中,如何连接MySQL数据库。

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

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

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

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

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文件中有这个功能:

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

Android部分比较复杂一些:

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

2. 响应的信息转化成字符

3. 解析JSON数据,读取你想要的数据。

Java代码

String result = "";
//the year data to send
ArrayList nameValuePairs = new
ArrayList();
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 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());
}
//parse json data
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i

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

中国存储网声明:此文观点不代表本站立场,如有版权疑问请联系我们。

相关阅读

MySQL事务中一致性指的是?

MySQL事务中一致性是指事务的隔离执行(没有并发其他事务)保持数据库的一致性。

mysql数据库 root密码忘记后的修改方法分享-centos环境下

mysql root密码忘记后自然是要重置一个,方法很简单,修改my.cnf文件添加skip-grant-tables,就可以重置mysql root密码了。

腾讯计费平台 分布式MySQL数据库TDSQL架构分析

随着业务的发展,基于内存的NoSQL解决方案HOLD平台在高峰期一天支撑3000亿读写,证明了分布式Cache的巨大价值;但随着各种业务的接入,NoSQL方案的不足也逐步显现出来了,如下所示。

CentOS 5.1安装和配置berkeleydb.4.5+sendmail-8.14.2

CentOS 5.1安装和配置berkeleydb.4.5+sendmail-8.14.2,出现过以下问题:makemap hash /etc/mail/access < /etc/mail/access出错:makemap: Need to recompile with -DNEWDB。

centos系统设置zabbix中的sendmail发信

最近在搞zabbix发邮件的问题,从网上找了很多均没有得到答案!在我把自己的配置共享给大家,希望大家不断完善和分享。

数据中台进入银行后,会给给IT技术人员带来哪些挑战?

作为银行的技术人员,如何适应数据中台的变化。面临着业务挑战、技术挑战、组织架构挑战。

银行IT架构设计:选择集中式架构(非云化)还是分布式架构(云化)

近年来,随着金融产品和服务模式的持续变革,以及银行业转型发展的深入推进,促使人们不断思考银行IT 架构面临的挑战和影响。

TACC利用超级计算机模拟处理海水淡化

事实证明,海水淡化的秘诀在于:精确的网状均匀性,精确到纳米级。

对自己负责,对大家负责,请不要瞒报行程!告诉瞒报行程怎么处罚?

不听劝阻、不遵守相关隔离规定,导致他人感染,可以考虑过失以危险方法危害公共安全罪来定罪处罚。