Android通过WebService连接SQLServer浅析

时间:2022-07-31 01:09:40

摘 要 本文通过对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 SelectVideo(String id),SelectVideo函数,通过视频id获取视频地址,其SQL语句如下。

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:///”;

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.

上一篇:我从来没有这样“出众”过 下一篇:基于动态数据驱动的泸州市空气质量指数适应性...