Android平台以其强大的功能和友好的用户界面,在几大主流平台的竞争中取得了巨大的胜利和飞速的发展,在移动操作系统市场的份额中所占的比例也越来越大。
摘 要:Android应用常用的数据存储采用的数据库一般是类似于SQLite的小型数据库。这种数据库直接运行在Android设备上,但是现在很多企业级的管理系统也需要在Android的应用程序客户端进行操作,但是大型的数据库运行在Android设备上几乎是不可能的,所以此时Android的应用程序就要和运行在PC机客户端的系统共同访问一个企业级的数据库,该数据库运行在windows server服务器上。Android系统通过网络来实时访问数据,保证多个平台的客户端数据的实时、一致。
关键词:核心期刊发表,Android,SQL Server,数据访问
一、概述
如今,很多管理系统的用户希望可以随时随地在手机等终端来进行一些系统上日常操作。因此,基于Android平台的应用程序可以和运行在PC机上系统共同访问一个企业级的数据库就是非常迫切的问题。
二、开发环境
Android的应用程序开发使用Eclipse作为开发环境,用到的企业级的数据库是SQL Server。
三、概要说明
1.通过Web Service方式间接访问SQL Server数据
Web Service在数据访问和系统集成上已经是一种非常成熟的方式了,Web Service技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。
2.通过JDBC驱动直接访问SQL Server数据库
JDBC(Java Data Base Connectivity, java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
四、功能实现
下面具体来说明每一种的实现方式:
第一种方式:通过Web Service访问SQL Server数据库这种方式并不是Android的应用程序直接访问SQL Server,而是通过运行在Web Service服务器Web Service服务器端程序(.NET或者java开发)去访问SQL Server数据库。Android系统的应用程序作为客户端调用Web Service服务器端提供的接口函数来间接的访问数据库数据.以下是Android系统的应用程序访问Web Service的关键源代码:需要引入
ksoap2-android-assembly-2.4-jar-with-dependencies.jar这个包文件,可直接从网络上下载。
String nameSpace = "http://***.***.cn/";
String methodName = " methodName ";
String endPoint = "http://***.**.cn/**.asmx";
String soapAction = "http:// http://***.***.cn// methodName ";
SoapObject soapObject = new SoapObject(nameSpace, methodName);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);
envelope.bodyOut = soapObject;
envelope.dotNet = true;
envelope.setOutputSoapObject(soapObject);
HttpTransportSE transport = new HttpTransportSE(endPoint);
try
{transport.call(soapAction, envelope);}
catch (IOException e)
{e.printStackTrace();}
catch (XmlPullParserException e)
{e.printStackTrace();}
SoapObject object = (SoapObject) envelope.bodyIn;
String result = object.getProperty(0).toString();
Result作为返回的数据解析出来在Android的应用程序上使用即可。
另外一种方式通过JDBC驱动直接访问SQL Server时,当Android的应用程序一旦和SQL Server建立连接后,对数据库的增删改查可以直接使用sql语句来实现,对数据库操作语句种类较多时。这种方式更直接,以下是Android系统的应用程序通过JDBC驱动访问SQL Server的关键源代码。 需要引入jtds-1.2.jar这个包文件,可直接从网络上下载。
try
{Class.forName("net.sourceforge.jtds.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:jtds:sqlserver://***.**.cn:1433/dbname", "sa", "password");
Statement stmt = conn.createStatement();
ResultSet result = stmt.executeQuery("select * from tableName");//
while (result.next())
{result.getString("columnName");}
stmt.close();
conn.close();}
catch (Exception e)
{e.printStackTrace();}
五、方式对比
通过Web Service方式访问SQL Server数据库的方式并不灵活,但是当SQL Server是第三方的数据库时,第三方只提供部分访问数据的功能。这种方式是比较常用的解决方案。
通过JDBC驱动直接访问SQL Server。这种方式是在基于Android平台的JDBC驱动包比较成熟后开始使用的办法,访问数据更直接高效。
六、注意事项
以上两种方式访问SQL Server数据库在Android的应用程序上执行时,因为会访问网络上数据,都会较为费时,直接在Main Thead上运行时,用户是处于等待状态,且界面一直锁定不能操作,都会给用户不好的体验,所以这些代码都要运行在Worker Thread,远程数据返回时直接解析完成交给Main Thead来显示,可在实际操作时对比在Main Thead和Worker Thread在用户体验上差异。
七、结语
笔者介绍了两种Android的应用程序访问SQL Server的数据库的方法,具有很强的实际意义和使用价值。实现这个功能是Android的应用程序和PC的应用程序共享数据的基础,开发人员在使用的过程中可以根据实际情况选择一种方式。