雖然Android有SQLite的支持,但由于手機(jī)的硬件條件限制,很多數(shù)據(jù)庫并沒有直接運(yùn)行在客戶端上,因此對遠(yuǎn)程數(shù)據(jù)庫的訪問也是Android的必要技術(shù)。本文主要運(yùn)用HttpClient組件,完成對遠(yuǎn)程數(shù)據(jù)庫的訪問,實(shí)現(xiàn)Android客戶端對遠(yuǎn)程服務(wù)器數(shù)據(jù)的調(diào)用及修改。 1.引言 雖然Android本身具有SQLite的支持,但SQLite數(shù)據(jù)只能進(jìn)行簡單的CRUD操作,數(shù)據(jù)類型也不能太復(fù)雜和數(shù)據(jù)容量不能太大。而訪問遠(yuǎn)程數(shù)據(jù)庫的方法多種多樣,主要分為直接和間接兩種。直接訪問采用JDBC連接技術(shù),但其安全性較低,間接方法主要通過客戶端向服務(wù)器發(fā)送請求,進(jìn)而采用數(shù)據(jù)傳輸?shù)姆绞竭M(jìn)行數(shù)據(jù)庫訪問。 當(dāng)下比較流行的數(shù)據(jù)傳輸方式主要有XML和JSON兩種方式,由于HTTP協(xié)議是從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議,使瀏覽器更加高效,而HttpClient是支持HTTP協(xié)議的客戶端編程工具包,因此HttpClient組件為實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)庫的連接提供了更為便捷有效的方式。 2.HttpClient簡介 HttpClient是Apache Jakarta Common下的子項(xiàng)目,可以用來提供高效的、最新的、功能豐富的支持HTTP協(xié)議的客戶端編程工具包。它提供的主要的功能包括:實(shí)現(xiàn)了所有HTTP的方法(GET,POST,PUT,HEAD等)、支持自動轉(zhuǎn)向、支持HTTPS協(xié)議、支持代理服務(wù)器等。 3.HttpClient在Android中的應(yīng)用 3.1工作原理 (1)客戶端通過URL向服務(wù)器發(fā)送請求,建立連接; (2)服務(wù)器接收客戶端請求,并將響應(yīng)信息返回客戶端; (3)客戶端與服務(wù)器斷開連接。 3.2服務(wù)器端的開發(fā) 服務(wù)器端采用JSP技術(shù),通過利用JavaBean使用JDBC完成數(shù)據(jù)庫連接,同時(shí),使用Servlet實(shí)現(xiàn)數(shù)據(jù)傳輸功能。 3.3手機(jī)客戶端的開發(fā) Android集成了org.apache.http.client.HttpClient,可以直接實(shí)現(xiàn)簡單的htttp Get和Post操作。操作實(shí)現(xiàn)步驟如下: (1)創(chuàng)建HttpClient客戶端對象; (2)生成響應(yīng)的請求信息; (3)使用execute方法發(fā)送HTTP GET(HTTP POST)請求,并返回HttpResponse對象,通過利用getStatusCode獲取返回碼以判斷請求是否發(fā)送成功(若返回碼為200,則成功); (4)解析返回信息。 關(guān)鍵代碼如下: 4.結(jié)語 本文在利用JavaBean工具類對數(shù)據(jù)庫進(jìn)行操作的基礎(chǔ)上,通過使用Servlet進(jìn)行數(shù)據(jù)的輸入輸出,并結(jié)合HttpClient組件傳送Http數(shù)據(jù),順利實(shí)現(xiàn)了Android與遠(yuǎn)程數(shù)據(jù)庫的間接訪問,同時(shí)也在一定程度上加強(qiáng)了對數(shù)據(jù)庫的安全性保護(hù)。未來HttpClient組件技術(shù)還將在Android手機(jī)平臺中越來越廣泛地得以應(yīng)用。 |