所屬欄目:軟件開發(fā)論文 發(fā)布日期:2014-08-05 17:10 熱度:
Android平臺(tái)以其強(qiáng)大的功能和友好的用戶界面,在幾大主流平臺(tái)的競爭中取得了巨大的勝利和飛速的發(fā)展,在移動(dòng)操作系統(tǒng)市場的份額中所占的比例也越來越大。
摘 要:Android應(yīng)用常用的數(shù)據(jù)存儲(chǔ)采用的數(shù)據(jù)庫一般是類似于SQLite的小型數(shù)據(jù)庫。這種數(shù)據(jù)庫直接運(yùn)行在Android設(shè)備上,但是現(xiàn)在很多企業(yè)級的管理系統(tǒng)也需要在Android的應(yīng)用程序客戶端進(jìn)行操作,但是大型的數(shù)據(jù)庫運(yùn)行在Android設(shè)備上幾乎是不可能的,所以此時(shí)Android的應(yīng)用程序就要和運(yùn)行在PC機(jī)客戶端的系統(tǒng)共同訪問一個(gè)企業(yè)級的數(shù)據(jù)庫,該數(shù)據(jù)庫運(yùn)行在windows server服務(wù)器上。Android系統(tǒng)通過網(wǎng)絡(luò)來實(shí)時(shí)訪問數(shù)據(jù),保證多個(gè)平臺(tái)的客戶端數(shù)據(jù)的實(shí)時(shí)、一致。
關(guān)鍵詞:核心期刊發(fā)表,Android,SQL Server,數(shù)據(jù)訪問
一、概述
如今,很多管理系統(tǒng)的用戶希望可以隨時(shí)隨地在手機(jī)等終端來進(jìn)行一些系統(tǒng)上日常操作。因此,基于Android平臺(tái)的應(yīng)用程序可以和運(yùn)行在PC機(jī)上系統(tǒng)共同訪問一個(gè)企業(yè)級的數(shù)據(jù)庫就是非常迫切的問題。
二、開發(fā)環(huán)境
Android的應(yīng)用程序開發(fā)使用Eclipse作為開發(fā)環(huán)境,用到的企業(yè)級的數(shù)據(jù)庫是SQL Server。
三、概要說明
1.通過Web Service方式間接訪問SQL Server數(shù)據(jù)
Web Service在數(shù)據(jù)訪問和系統(tǒng)集成上已經(jīng)是一種非常成熟的方式了,Web Service技術(shù),能使得運(yùn)行在不同機(jī)器上的不同應(yīng)用無須借助附加的、專門的第三方軟件或硬件,就可相互交換數(shù)據(jù)或集成。依據(jù)Web Service規(guī)范實(shí)施的應(yīng)用之間,無論它們所使用的語言、平臺(tái)或內(nèi)部協(xié)議是什么,都可以相互交換數(shù)據(jù)。
2.通過JDBC驅(qū)動(dòng)直接訪問SQL Server數(shù)據(jù)庫
JDBC(Java Data Base Connectivity, java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序。
四、功能實(shí)現(xiàn)
下面具體來說明每一種的實(shí)現(xiàn)方式:
第一種方式:通過Web Service訪問SQL Server數(shù)據(jù)庫這種方式并不是Android的應(yīng)用程序直接訪問SQL Server,而是通過運(yùn)行在Web Service服務(wù)器Web Service服務(wù)器端程序(.NET或者java開發(fā))去訪問SQL Server數(shù)據(jù)庫。Android系統(tǒng)的應(yīng)用程序作為客戶端調(diào)用Web Service服務(wù)器端提供的接口函數(shù)來間接的訪問數(shù)據(jù)庫數(shù)據(jù).以下是Android系統(tǒng)的應(yīng)用程序訪問Web Service的關(guān)鍵源代碼:需要引入
ksoap2-android-assembly-2.4-jar-with-dependencies.jar這個(gè)包文件,可直接從網(wǎng)絡(luò)上下載。
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作為返回的數(shù)據(jù)解析出來在Android的應(yīng)用程序上使用即可。
另外一種方式通過JDBC驅(qū)動(dòng)直接訪問SQL Server時(shí),當(dāng)Android的應(yīng)用程序一旦和SQL Server建立連接后,對數(shù)據(jù)庫的增刪改查可以直接使用sql語句來實(shí)現(xiàn),對數(shù)據(jù)庫操作語句種類較多時(shí)。這種方式更直接,以下是Android系統(tǒng)的應(yīng)用程序通過JDBC驅(qū)動(dòng)訪問SQL Server的關(guān)鍵源代碼。 需要引入jtds-1.2.jar這個(gè)包文件,可直接從網(wǎng)絡(luò)上下載。
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數(shù)據(jù)庫的方式并不靈活,但是當(dāng)SQL Server是第三方的數(shù)據(jù)庫時(shí),第三方只提供部分訪問數(shù)據(jù)的功能。這種方式是比較常用的解決方案。
通過JDBC驅(qū)動(dòng)直接訪問SQL Server。這種方式是在基于Android平臺(tái)的JDBC驅(qū)動(dòng)包比較成熟后開始使用的辦法,訪問數(shù)據(jù)更直接高效。
六、注意事項(xiàng)
以上兩種方式訪問SQL Server數(shù)據(jù)庫在Android的應(yīng)用程序上執(zhí)行時(shí),因?yàn)闀?huì)訪問網(wǎng)絡(luò)上數(shù)據(jù),都會(huì)較為費(fèi)時(shí),直接在Main Thead上運(yùn)行時(shí),用戶是處于等待狀態(tài),且界面一直鎖定不能操作,都會(huì)給用戶不好的體驗(yàn),所以這些代碼都要運(yùn)行在Worker Thread,遠(yuǎn)程數(shù)據(jù)返回時(shí)直接解析完成交給Main Thead來顯示,可在實(shí)際操作時(shí)對比在Main Thead和Worker Thread在用戶體驗(yàn)上差異。
七、結(jié)語
筆者介紹了兩種Android的應(yīng)用程序訪問SQL Server的數(shù)據(jù)庫的方法,具有很強(qiáng)的實(shí)際意義和使用價(jià)值。實(shí)現(xiàn)這個(gè)功能是Android的應(yīng)用程序和PC的應(yīng)用程序共享數(shù)據(jù)的基礎(chǔ),開發(fā)人員在使用的過程中可以根據(jù)實(shí)際情況選擇一種方式。
文章標(biāo)題:核心期刊發(fā)表論文SQL Server數(shù)據(jù)訪問的實(shí)現(xiàn)
轉(zhuǎn)載請注明來自:http://www.anghan.cn/fblw/dianxin/ruanjiankaifa/22153.html
攝影藝術(shù)領(lǐng)域AHCI期刊推薦《Phot...關(guān)注:107
Nature旗下多學(xué)科子刊Nature Com...關(guān)注:152
中小學(xué)教師值得了解,這些教育學(xué)...關(guān)注:47
2025年寫管理學(xué)論文可以用的19個(gè)...關(guān)注:192
測繪領(lǐng)域科技核心期刊選擇 輕松拿...關(guān)注:64
及時(shí)開論文檢索證明很重要關(guān)注:52
中國水產(chǎn)科學(xué)期刊是核心期刊嗎關(guān)注:54
國際出書需要了解的問題解答關(guān)注:58
合著出書能否評職稱?關(guān)注:48
電信學(xué)有哪些可投稿的SCI期刊,值...關(guān)注:66
通信工程行業(yè)論文選題關(guān)注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關(guān)注:121
評職稱發(fā)論文好還是出書好關(guān)注:68
復(fù)印報(bào)刊資料重要轉(zhuǎn)載來源期刊(...關(guān)注:51
英文期刊審稿常見的論文狀態(tài)及其...關(guān)注:69
Web of Science 核心合集期刊評估...關(guān)注:59
電子信息論文范文
智能科學(xué)技術(shù)論文 廣播電視論文 光電技術(shù)論文 計(jì)算機(jī)信息管理論文 計(jì)算機(jī)網(wǎng)絡(luò)論文 計(jì)算機(jī)應(yīng)用論文 通信論文 信息安全論文 微電子應(yīng)用論文 電子技術(shù)論文 生物醫(yī)學(xué)工程論文 軟件開發(fā)論文
SCI期刊分析
copyright © www.anghan.cn, All Rights Reserved
搜論文知識(shí)網(wǎng) 冀ICP備15021333號-3