张志东 王玉清
摘 要:本文通过设计Android版的教务系统客户端,详细描述了通过创建Web Service平台连接oracle数据库的方法,android客户端通过ksoap2-android类访问Web Service平台的方法,最后实现Android客户端访问oracle数据库。并介绍了其中关键技术,最后给出了开发android系统时操作大型数据库的方法。
关键词:android;web service;oracle数据库
中图分类号:TP311 文献标识码:A
1 引言(Introduction)
现在大多数高校都有了自己的教务管理系统,学生、教师需通过网络查看自己的课表、成绩、选报课程等。电脑与网络逐渐成了广大师生学习与工作中必不可少的工具。但是电脑的学生的普及率并不高,而且携带不方便。由于系统是针对电脑开发的,许多系统功能是通过手机无法实现的,并且流量费用也制约手机用户。因此开发手机版的管理系统势在必行。
目前手机用户大多数采用Android系统,它采用关系型数据库是SQLite,一个支持SQL的轻量级嵌入式数据库[1]。Android系统不能够直接访问其他大型数据库,如oracle、sql、db2等。大多数Android系统开发时又必须创建独立的大型数据库,这就需要创建Web Service平台,该平台能够操作数据库,而且还能提供相应的接口。然后Android系统开发时通过ksoap2-android类访问Web Service平台[2]。这样就可以实现Android程序操作大型数据库的目的。
2 Android系统(Android system)
Android系统基于Linux的自由及开放源代码,主要使用于智能手机和平板电脑,目前逐渐扩展到其他领域,如电视、游戏机、数码相机等[3]。Android系统采用了分层的架构,从高到低分别是应用程序层、应用程序框架层、系统运行库层和内核层。采用分层模式的好处就是使用下层提供的服务和为上一层提供统一的服务,当下层发生变化时对上层是没有影响的。其特点就是高内聚、低耦合[4]。
3 Web Service技术(Web service technology)
Web Service即Web服务,它是一个跨平台、低耦合的Web应用程序,它能够使不用系统、不同机器上的应用程序无须借助第三方软件和硬件,就可以实现数据的相互交换。它采用soap协议(简单对象访问协议),数据传输格式是XML语言[5]。
目前现在许多应用程序都采用Oracle、SQL等数据库,根据业务需求要开发Android版的应用程序。但是Android平台是无法直接访问这些大型数据库的。因此Android程序需要借助Web Service平台来访问这些数据库。
如图1所示为Android客户端借助Web Service接口实现对oracle数据库的操作。
图1 Android客户端操作oracle数据库
Fig.1 Operate the oracle database
base at the android client
4 基于.NET平台设计Web Service访问接口(Design
web service access inte rface based on the .NET
platform)
.NET即Microsoft XML Web Services平台,是微软公司最新推出的技术平台。它允许应用程序通过Internet相互访问和数据共享,不需要考虑用户采用何种操作系统、设备等[6]。
本系统使用C#语言创建一个Web Service接口。其功能是根据用户输入的学号,查询学生的成绩、当前学期的课程安排以及最新公告通知等。具体函数及功能如表1所示。
表1 接口名称及其功能
Tab.1 The name and function of the interface
接口名称 接口功能
chaxuncj(string xh) 根据学号查询该生的所有成绩
insertxkxxb(string kch,string kxh,string xh) 根据学号、课程号、课序号实现重修课程、任选课程的报名
chaxunkb(string xh) 根据学号查询本学期个人的课表
Tongzhi() 查看管理员发送的新闻或通知
查询学生成绩和重修选课接口的部分代码如下:
public Listchaxuncj(string xh)
{List
list.Add(sd [4].ToString());//课程成绩
list.Add(sd [5].ToString());//课程类型
}
reader.Close();
cmd.Dispose();
return list;
}
学生需要通过系统报任选课,将不及格的课程号、课序号填入,学生的个人信息才可以加入到成绩库中。关键代码如下:
public bool insertxkxxb(string kch,string kxh,string xh)
{
string sql="insert into xkxxb(kch,kxh,xh) values('"+,kch+,"',"+kxh+",”+xh+”) where xueqi="+dqxq;
SqlCommand cmd=new SqlCommand(sql,sqlCon);
cmd.ExecuteNonQuery();
cmd.Dispose();
return true;
}
4.1 设计Android 客户端访问Web Service接口
Android 客户端主要功能是学生通过使用手机端输入学号和密码登录系统,学生能够接收到最新的校园新闻和通知,可以查看本学期的个人课表,输入不及格课程的课程号和课序号可以实现重修报名,查看所有成绩信息(包含重修通过的课程)。具体内容如图2所示。
图2 Android 客户端功能模块图
Fig.2 Function block diagram of the android client
4.2 Android 客户端向Web Service接口发送数据并接受
信息
学生在Android客户端输入学号和密码,然后客户端将数据传输到Web Service接口,Web Service接口根据接收的数据和函数类型对数据库进行操作,最后将操作结果反馈到Android 客户端。
首先在Android客户端创建线性布局文件res/layout/main.xml,在布局文件中创建两个文本输入框,分别用于输入学号和密码,一个Button提交按钮。然后创建MainActivity,编写getxsinfo函数实现Android客户端向Web Service接口传输数据,并接收到的学生信息显示到文本框内。关键代码如下:
public void getxsInfo(String xh) {
String name="http://211.82.48.36:8080/";
String method="getxsInfo";
String end="http://211.82.48.36:8080/ MobileCodeWS.asmx";
String search="http://211.82.48.36:8080/selectcj";
SoapObject rpc=new SoapObject(name,method);
rpc.addProperty("xh","");
SoapSerializationEnvelope soapenvelope=new SoapSerializationEnvelope(SoapEnvelope.VER10);
soapenvelope.bodyOut=rpc;
soapenvelope.dotNet=true;
soapenvelope.setOutputSoapObject(rpc);
HttpTransportSE transport=new HttpTransportSE(end);
transport.call(soapAction,esoapnvelope);
SoapObject object=(SoapObject) envelope.bodyIn;
String xinxi=object.getProperty(0).toString();
resultView.setText(xinxi);
}
5 结论(Conclusion)
本文着重介绍了在设计Android客户端程序时如何操作大型数据库,结合教务系统Android客户端的设计,详细介绍了使用C#语言设计Web Service接口并操作oracle数据库,将数据结果以XML格式输出,Android客户端调用Web Service接口,将接收到的数据显示到文本框内,或者将数据传输到Web Service接口,由Web Service接口来操作数据库。最终通过设计Web Service接口实现数据库跨平台的操作。
参考文献(References)
[1] 王冬霞.基于Android天气预报系统的设计与实现[J].科技广 场,2014,(1):57-61.
[2] 陈爱华.基于XML和Web Service的异构数据库数据交换研究 [J].软件工程师,2011(5):56-58.
[3] 周树明.基于Web Service技术的应用实例的设计和实现[J].计 算机应用于软件,2003(4):63-65.
[4] 郭定聪.基于Web服务器的Android手机管理系统的设计与实 现[D].哈尔滨工业大学,2013.
[5] 柏永斌.基于XML和Web Service的异构数据整合技术应用研 究[J].电脑知识与技术,2009,(08):1796-1797.
[6] 岳俊梅.基于网络环境的自主学习现状及分析[J].软件工程师, 2014,17(7):34-36.
作者简介:
张志东(1979-),男,硕士,讲师.研究领域:计算机应用.
王玉清(1965-),男,学士,教授.研究领域:应用数学.