标题 | Android通过WebService连接SQLServer浅析 |
范文 | 刘颖++胡畅霞++米建 摘 要 本文通过对Android连接数据库的研究,选择Microsoft Visual Studio 2010,eclipse和SQLServer为技术开发平台,以移动开发为案例,设计了Android通过WebService与数据库的连接。 关键词 WebService;Android;SQLServer 中图分类号TP3 文献标识码 A 文章编号 1674-6708(2015)145-0048-01 随着现代社会中手机用户的普遍增多,手机应用程序也如雨后春笋般成长起来。一个出色的手机应用程序免不了要与数据库进行连接,但是Android不能直接连接数据库,因此本文介绍了通过一个“桥梁”——webservice来访问SQLServer数据库。 1 Android连接数据库的方式 在Android开发中,一般有如下几种方式连接数 据库。 1)Android访问自带的SQLite数据库。通过使用数据库操作帮助类继承SQLiteOpenHelper。在DAO层借助数据库操作帮助类写数据库操作的方法。Activity调用DAO层的数据库操作方法进行操作。 2)Android可以通过Http协议获取数据。将Http协议连接对象,通过Post请求向服务器传送数据,数据放在HTML HEADER内一起传送到服务端URL地址。 3)通过SOAP协议获取数据。客户生成SOAP请求,嵌入在HTTP POST请求中,发送到服务器上,服务器再把这些请求通过HTTP应答的方式把它送回到客户端。 2 Android连接数据库的详细设计 2.1 项目背景 本人承担了河北省大学生创新项目《“互联网+”下毕业设计评价系统》,采用了SQL Server数据库,第一阶段中利用.net技术已经开发了网站,第二阶段需要开发配套的手机APP,但是Android如何连接数据库,SQL server中的数据如何通过手机显示,成为了本项目开发的关键问题。 2.2 解决方案 本人采用了SOAP协议,通过WebService这个桥梁实现了对SQLServer数据库的访问。 首先,本人需要设计WebService应用程序连接数据库。在Web.config文件中设置虚拟目录,连接数据库。下面以“在线视频播放”部分功能进行具体说明。 在本模块中,需要根据视频的id,从数据库中获取视频网址,然后在网上进行在线播放。下面是实现步骤。 首先在VS2010中定义WebService: 1)服务名:SelectVideo:在线视频的函数服 务名。 2)参数:id:在线视频的id,通过id获取视频的网址。 3)返回值:list:返回视频的网址。 Public List String sql=”Select F_path from V_Video where F_id= ”+id+” ”。 SqlDataReader reader=db.ReturnDataReader(sql),定义SqlDataReader类型变量,执行SQL语句。 list.Add(reader[0].ToStirng()),用list数组返回视频网址 之后在eclipse中, 引入ksoap2-android项目的ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar包。之后用ksoap2-Android调用Webservice,具体操作过程如下。 (1)创建HttpTransportSE对象,该对象用于调用WebService操作; final HttpTransportSE ht=new HttpTransportSE(” ”); (2)创建SoapSerializationEnvelope对象; final SoapSerializationEnvelopeanvelope =new SoapSerializationEnvelope (SoapEnvelope.VERLL); (3)创建SoapObject对象,创建该对象时需要传入所要调用的WebService的命名空间; static final String SERVICE_NS = “http://tempuri.org/”; SoapObject soapobject=new SoapObject(SERVICE_NS,methodName) 将参数传给Web Service服务端,调用Soapobject对象的addproperty方法。 例如:SoapObject.addProperty(“zjid”,zjid),为WebService服务器传递参数,zjid就是该视频的id,通过id,获取视频的网址,然后进行视频的播放。 (4)直接对bodyout属性赋值,将SoapObject对象设为SoapSerializationEnvelope的传出SOAP消 息体。 envelope.bodyout=soapobject; (5)调用对象的call方法,并以SoapSerializationEnvelope作为参数调用远程WebService。 ht.call(SERVICE_NS+methodName,envelope); (6)调用完成后,访问SoapSerializationEnvelope对象的bodyin属性。 SoapObject result=(SoapObject)envelope.bodyin; (7)在Activity中用SoapObject定义变量调用 函数。 SoapObject detail=Web.getVideo(id) String path=detail.getProperty(i).toString(); 通过这些操作,我们就可以通过WebService对数据库进行数据访问,通过视频id获取视频网址,从而进行视频的在线播放。 3 结论 作者利用WebServcie这个桥梁,实现Android和SQL Server数据库的连接,并将该方法应用在了大学生创新项目中,实践证明,该方法可以高效快速的显示数据库中的数据。 参考文献 [1]袁向英.基于Android系统的数据库开发和插件技术的应用开发.2014. [2]王绍祥,邵禹斌,龙华,等.Android手机与数据库的一种数据交互方法.2011. [3]黄淑静,杨红梅.利用JSON+WebService实现Android访问远程数据库.2013. [4]王飞,王创伟.基于Android的数据库初始化方案的研究与应用.2012. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。