2013年第9期SCIENCE&TECHNOLOGYINFORMATION

○IT论坛○科技信息

利用JSON+WebService实现Android访问远程数据库

黄淑静1杨红梅2

(1.山东科技大学研究生学院,山东青岛266590;2.山东科技大学信息科学与工程学院,山东青岛266590)

【摘要】Android系统资源有限,其性能和内存无法与PC相比,绝大多数数据库没有直接运行在移动设备的客户端,而是运行在远程服务器端。由于Android不支持直接访问远程数据库,因此,本文提出了一种利用JSON+WebService实现Android访问远程数据库的方式。

【关键词】Android;JSON格式;Web服务;远程数据库

0引言

随着无线网络覆盖范围的扩大,google于2007年11月5日推出的Android系统也不断地进行更新换代,由于平台的开放性,吸引了许多终端设备开发商及开发人员的青睐,对应的手机及移动设备产品受到大部分人的喜爱,且很多知名网站也推出了Android客户端版本。由于移动设备的性能及内存等无法与台式机及笔记本电脑相比,访问数据库也不可能像桌面安装各种数据库的客户端,而且目前绝大多数数据库也没有直接运行在移动设备的客户端。为了能够让移动设备访问后台数据库,本文借用Web服务接口以及轻量级的JSON数据格式作为Android设备访问远程数据库的中间桥梁,再通过web应用服务器访问数据库,实现了Android跨平台、快速、安全地访问远程服务器端数据。

1

1.1

JSON数据格式

环境中动态地描述、发布、发现和调用服务。2.2WebService体系结构

Web服务的体系结构是基于Web服务提供者、Web服务请求者、Web服务中介者三个角色和发布、发现、绑定三个动作构建的。实现一个完整的Web服务包括以下步骤:(1)Web服务提供者设计实现Web服务,并将调试正确后的Web服务通过Web服务中介者发布,并在UDDI注册中心注册;(2)Web服务请求者向Web服务中介者请求特定的服务,中介者根据请求查询UDDI注册中心,为请求者寻找满足请求的服务;(3)Web服务中介者向Web服务请求者返回满足条件的Web服务描述信息,该描述信息用WSDL写成,各种支持Web服务的机器都能阅读;(4)利用从Web服务中介者返回的描述信息生成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调用;(5)Web服务提供者按SOAP消息执行相应的Web服务,并将服务结果返回给Web服务请求者。

JSON数据格式定义

JSON(JavascriptObjectNotation)是一种轻量级的数据交换格式,易于使用并且容易转换到Java对象。JSON采用完全独立于语言的文

3Android调用WebService访问远程数据库实例

本格式。它将一组数据转换为字符串,可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。

1.2选用JSON格式的原因

服务器返回给客户端的内容有三种方式:(1)以HTML代码的形式返回;(2)以XML字符串的形式返回,Android开发运用此种比较多;(3)以JSON对象形式返回。进行网络数据传输与解析时,一般使用XML和JSON方式。本文选用JSON作为数据传输和解析的方式有以下几个原因:

(1)JSON方式与传统的XML解析方式比起来,比XML更轻量级。相对于XML来说,JSON格式的数据少了很多结构上是字符,在数据传输过程中,同等的数据,JSON需要传输的数据更少一些。

(2)在数据可读性方面,就数据大小而言比xml更经济。

(3)越来越多的API供应商对用到json的地方进行了封装,被广泛应用了。如Twitter。

(4)Android通常在蜂窝数据网络上工作的资源受限,不能存储和解析大量的xml数据。

(5)Android进行JSON解析时,不需要额外的处理类。所有解析和文档管理都在Android提供的类库中进行。

因此,在网络传输与解析时,将数据编码成JSON格式的数据,进行数据传输,较XML格式的数据更好一些。

Android客户端访问远程数据库的具体实现方式:(1)Android客户端提交请求;(2)服务器根据提交的请求,生成相应的SQL语句访问数据库服务器,把读取的数据信息封装成JSON格式,以JSON格式返回到Android客户端;(3)Android客户端得到响应后,对JSON数据解析,并展示到相应的UI上。

我们现在将用简单的例子来实现在android平台利用JSON+WebService访问远程数据库。3.1服务器端程序

我们发布一个简单的Web服务,其功能是读取会议中所有的议案信息。这个WebService是用C#语言在Visualstudio2008上实现的。实现的主要源代码如下:

2

2.1

Web服务

什么是WebService

WebService也叫XMLWebService,是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术,是通过SOAP在Web上提供的软件(服务),使用WSDL文件进行(说明),并通过(UDDI)进行注册。主要目标是跨平台的可互操作性,为了达到这一目标,webService完全基于XML(可扩展标记语言)、XSD(XMLSChema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。Webservice能够在一个分布式的计算

[WebMethod(Description="获取议案信息列表",CacheDuration=600)][ScriptMethod]

publicStringgetIssuesList(){

DataTabledt=voteinfo.LoadIssuesList();

stringstr=GetJson.DataTableToJson("IssuesList",dt);returnstr;}

//把从数据库中返回的数据封装成JSON格式

publicstaticstringDataTableToJson(stringjsonName,DataTabledt)

{

StringBuilderJson=newStringBuilder();Json.Append("{\""+jsonName+"\":[");if(dt.Rows.Count>0){

for(inti=0;i

Json.Append("{");

for(intj=0;j

Json.Append("\""+dt.Columns[j].

ColumnName.ToString()+"\":\""+dt.Rows[i][j].ToString()+"\"");

作者简介:黄淑静(1985.1—),女,山东济宁人,研究生,研究方向为图形与图像处理。

利用json+webservice实现android访问远程数据库,利用JSON+WebService实现Android访问远程数据库...相关推荐

  1. php和android和mysql_如何使用JSON连接Android和PHP Mysql数据库

    我们先来看一个简单的Android app例子(这里是一个商品存货清单项目),在Android程序中,我们可以访问(call)PHP脚本来执行简单的CRUD操作(创建,读取,更新,删除).为了使你对它 ...

  2. linux服务器安装mysql数据库并通过本地Navicat连接访问远程mysq数据库

    之前因为项目需要,所以自己在linux服务器上安装了mysql数据库,但是自己在安装mysql数据库的时候也是遇到了很多的问题,所以特此在本博客中介绍一下如何在linux服务器上进行mysql数据库的 ...

  3. Android之网络编程利用PHP操作MySql插入数据(四)

    因为最近在更新我的项目,就想着把自己在项目中用到的一些的简单的与网络交互的方法总结一下,所以最近Android网络编程方面的博文会比较多一些,我尽量以最简单的方法给大家分享,让大家明白易懂.如果有什么 ...

  4. 一个简单的Android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下 首先客户端从服务器端获取json数据 1.利用HttpUrlConnection 复制代码代码如下: /** ...

  5. android 使用Ksoap2工具类实现WebService网络编程

    1.下载Ksoap2,将jar包拷贝到libs目录下.然后右键点击拷贝进来的jar,在弹出菜单中点击Add As Library. 2.在AndroidManifest.xml中添加访问网络的权限 & ...

  6. Android学习笔记44:JSON数据解析

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...

  7. android wsdl封装,在Android中调用C#写的WebService(附源代码)

    由于项目中要使用Android调用C#写的WebService,于是便有了这篇文章.在学习的过程中,发现在C#中直接调用WebService方便得多,直接添加一个引用,便可以直接使用将WebServi ...

  8. android从服务端获取json解析显示在客户端上面,Android服务端获取json解析显示在客户端上面.doc...

    Android服务端获取json解析显示在客户端上面 Android从服务端获取json解析显示在客户端上面 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比 ...

  9. android post json格式,Android中post请求传递json数据给服务端的实例

    在最近的项目中有个需求是这样的: 入参封装成JSON,EXAMPLE: { "uuid": "iamauuid","clientType": ...

最新文章

  1. UI设计要做什么,UI设计培训都要学什么
  2. 电气:蒙特卡洛1000个风光场景并通过削减法|聚类法得到几个典型场景(matlab\python实现)
  3. Flask-RESTful 快速入门
  4. Docker 开发环境的滑坡
  5. const 常量_var,let,const 的区别?
  6. 关于DG32f103C8T6 不启动的问题-调试可以运行自启动不行
  7. python 代码替换_用Python将绝对URL替换成相对URL的代码
  8. 使用游标逐行更新数据
  9. 京东双 11 大促价疑遭提前泄露;库克:iPhone 11 中国定价策略成功;GitLab 重大安全版本更新 | 极客头条...
  10. 【Mac】789uiojklm键失效、启用小键盘(数字键盘)鼠标键的解决方法
  11. hdu2063 二分图的匈牙利匹配
  12. C# Tostring() 格式大全
  13. Caused by: java.lang.NumberFormatException: For input string: 18446744073709551615
  14. 和秋叶一起学PPT之快速标准化长文档(课时三)
  15. ccfcsp-20190301小中大-JAVA语言
  16. 一个完整的数据挖掘项目-纽约市建筑能源之星预测
  17. Mac小白应该使用App Tamer减慢或停止哪些应用程序?
  18. org.springframework.boot.actuate.endpoint.EndpointId cannot be cast to java.lang.String 异常处理
  19. 解决input输入的是空格问题
  20. 工业相机的曝光方式:全局曝光、卷帘曝光、全局复位释放曝光区别

热门文章

  1. 全球主要国家按照国家首字母分组返回列表
  2. 编制计算机程序的算法是什么,中国大学MOOC: 编制计算机程序解决问题的过程有:描述问题、算法设计、编写计算机程序和调试等,其中对算法描述不正确的是()。...
  3. 基于SSM框架的百度人脸识别
  4. system_process E/WindowManager: Starting window AppWindowToken
  5. 天猫、淘宝运营数据抓取技术概述
  6. 【逻辑思维训练 一】金字塔思维概述
  7. torch.mul() 和 torch.mm() 的区别
  8. tp5 限制访问频次
  9. 免费服务器硬件资源管理工具,wgcloud 国人免费版服务器资源监控工具
  10. 设计模式:工厂设计模式