陳潔
摘 要:隨著移動(dòng)技術(shù)的發(fā)展,基于Android操作系統(tǒng)的移動(dòng)設(shè)備在企業(yè)管理系統(tǒng)中的參與度越來越高,大量的企業(yè)級(jí)管理系統(tǒng)都需要支持Android應(yīng)用程序的訪問。然而受限于硬件性能,Android設(shè)備目前只能運(yùn)行一些小型數(shù)據(jù)庫,因此如何使Android應(yīng)用程序也能訪問大型數(shù)據(jù)庫的技術(shù)成為關(guān)鍵。該文以SQL Server數(shù)據(jù)庫為例,介紹了兩種常用的Android應(yīng)用訪問方法,并做出比較,為實(shí)際中的應(yīng)用提供參考。
關(guān)鍵字:SQL Server Android 數(shù)據(jù)庫訪問
中圖分類號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2014)12(c)-0012-01
SQL Server是由Microsoft公司推出的一種可擴(kuò)展的、高性能的、為分布式客戶機(jī)/服務(wù)器計(jì)算所設(shè)計(jì)的數(shù)據(jù)庫管理系統(tǒng),由于其在Windows平臺(tái)上的優(yōu)越性,常被一些中小型企業(yè)作為企業(yè)數(shù)據(jù)庫建設(shè)的首選。
Android是一種基于移動(dòng)設(shè)備的操作系統(tǒng),它以其強(qiáng)大的功能和友好的界面,在目前幾大主流移動(dòng)平臺(tái)系統(tǒng)的競(jìng)爭(zhēng)中占據(jù)優(yōu)勢(shì),在2014年的智能手機(jī)操作系統(tǒng)市場(chǎng)份額已接近85%。因此,面對(duì)目前幾乎人手一臺(tái)移動(dòng)設(shè)備的情況,從企業(yè)發(fā)展和管理的角度來說,重視移動(dòng)設(shè)備的接入,使企業(yè)管理和辦公移動(dòng)化是非常有必要的,而如何讓Android應(yīng)用訪問大型的數(shù)據(jù)庫成為了主要問題。
1 基于SQL Server的Android應(yīng)用訪問
以Android應(yīng)用訪問SQL Server數(shù)據(jù)庫為例,介紹兩種常用的訪問方式:基于Web Service的方式和基于JDBC的方式。
1.1 基于Web Service的訪問方式
Web Service技術(shù),能使得運(yùn)行在不同機(jī)器上的不同應(yīng)用無需借助附加的、專門的第三方軟件或硬件,就可相互交換數(shù)據(jù)或集成。依據(jù)Web Service規(guī)范實(shí)施的應(yīng)用,無論它們所使用的語言、平臺(tái)或內(nèi)部協(xié)議是什么,都可以相互交換數(shù)據(jù)。
因此,利用Web Service訪問SQL Server數(shù)據(jù)庫是一種比較常見的方法。該方法是在服務(wù)器端安裝Web Service程序,由其訪問SQL Server數(shù)據(jù)庫,同時(shí)為Android應(yīng)用提供接口函數(shù),Android應(yīng)用通過調(diào)用這些接口函數(shù)來達(dá)到訪問數(shù)據(jù)庫的目的。
在此,我們使用適合手機(jī)的Web Service客戶端類庫KSOAP2,需要下載并添加此類庫,以下給出Android調(diào)用Web Service客戶端的主要代碼。
private ConWebService conWebService = new ConWebService(
webserviceUrl ,nameSpace);
public ArrayList
{ArrayList
PropertyInfo pro = new PropertyInfo();
pro.setName("key");
pro.setValue(key);
arrayList =conWebService.getSoapData("getData", pro);
return arrayList;}
同時(shí)還需設(shè)計(jì)實(shí)現(xiàn)獲取數(shù)據(jù)功能的類ConWebservice完成數(shù)據(jù)的讀取功能。
1.2 基于JDBC的訪問方式
JDBC是Java Data Base Connectivity的縮寫,意思為“Java數(shù)據(jù)庫連接”,由一組用Java語言編寫的類和接口組成,為Java層直接操作關(guān)系型數(shù)據(jù)庫提供了標(biāo)準(zhǔn)的API。原理很簡(jiǎn)單,主要是向服務(wù)器的DBMS發(fā)送SQL(結(jié)構(gòu)化查詢語言)指令,實(shí)現(xiàn)各種數(shù)據(jù)庫的操作。而使用JDBC實(shí)現(xiàn)Android應(yīng)用訪問SQL Server數(shù)據(jù)庫需要三個(gè)步驟:加載JDBC驅(qū)動(dòng)程序、建立連接、發(fā)送SQL語句。
在Android工程中要使用JDBC的話,要導(dǎo)入JDBC的驅(qū)動(dòng),下載該驅(qū)動(dòng)包(jtds-1.2.jar)并導(dǎo)入。接下來建立連接,實(shí)現(xiàn)代碼為:
Connection con = null;
Class.forName("net.sourceforge.jtds.jdbc.Driver");
con = DriverManager.getConnection( "jdbc:jtds:sqlserver://
DbComputerNameOrIPAddr:1433/DatabaseName",UserName,Password);
當(dāng)成功連接數(shù)據(jù)庫之后,要?jiǎng)?chuàng)建一個(gè)Statement對(duì)象,Statement主要工作是把 SQL語句發(fā)送給DBMS,最后就可以發(fā)送操作數(shù)據(jù)庫的語句并處理結(jié)果了。
2 兩種方式的比較
以上兩種方式都可以完成對(duì)SQL Server數(shù)據(jù)庫的訪問,比較來說JDBC直連的方式更為簡(jiǎn)單方便,但是安全性不高,并且當(dāng)訪問的數(shù)據(jù)量過多時(shí)容易出問題。通過Web Service訪問的方式雖然不夠靈活,但只需要數(shù)據(jù)庫提供部分訪問數(shù)據(jù)的功能,當(dāng)對(duì)數(shù)據(jù)庫不需完全訪問時(shí),是比較常用的方法。
3 結(jié)語
該文主要基于常用的SQL Server數(shù)據(jù)庫,介紹了兩種Android平臺(tái)應(yīng)用訪問數(shù)據(jù)庫的方法,并做出比較,為開發(fā)人員的實(shí)際使用提供參考。
參考文獻(xiàn)
[1] 利用JDBC連接服務(wù)器數(shù)據(jù)庫.http://blog.csdn.net/conowen/article/details/7435231/.