国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Web程序開發(fā)中的JDBC技術(shù)改進(jìn)研究

2010-08-15 00:48常萬軍馬世霞
科學(xué)之友 2010年10期
關(guān)鍵詞:對象化程序開發(fā)易用性

常萬軍,馬世霞

(1.貴州大學(xué),貴州 貴陽 552205;2.河南機(jī)電高等??茖W(xué)校,河南 新鄉(xiāng) 453002)

Web程序開發(fā)中的JDBC技術(shù)改進(jìn)研究

常萬軍1,2,馬世霞2

(1.貴州大學(xué),貴州 貴陽 552205;2.河南機(jī)電高等??茖W(xué)校,河南 新鄉(xiāng) 453002)

文章基于MVC模式,通過建立DBAccess類實(shí)現(xiàn)了JDBC對象化改進(jìn)。利用繼承于改進(jìn)的Hashtable類的Data類和String[][]類的設(shè)計(jì),實(shí)現(xiàn)了JDBC易用性的改進(jìn)。在實(shí)現(xiàn)對象化和易用性改進(jìn)方案的基礎(chǔ)上開發(fā)出的Web系統(tǒng)經(jīng)測試能夠正常運(yùn)行,很好地說明了改進(jìn)方案的可行性。

MVC;技術(shù)改進(jìn);JDBC

1 引言

隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,對Web數(shù)據(jù)庫技術(shù)的發(fā)展要求越來越高。但是由于在網(wǎng)絡(luò)環(huán)境下,Web數(shù)據(jù)庫的體系結(jié)構(gòu)、訪問方式、訪問的用戶以及客戶端簡化等都與傳統(tǒng)數(shù)據(jù)庫有很大的不同,要使Web數(shù)據(jù)庫的應(yīng)用得到有效提高,需引入中間件這一技術(shù),使得應(yīng)用程序利可以用中間件共享各種資源,特別是分布式的網(wǎng)絡(luò)資源,也使軟件開發(fā)者不必在應(yīng)用程序間的通信、互操作以及它們的效率、可靠性、容錯(cuò)性、安全性、完整性等問題上耗費(fèi)太多精力,提高應(yīng)用程序開發(fā)的效率。JDBC(Java Data Base Connectivity)是基于中間件平臺的一種數(shù)據(jù)庫訪問技術(shù),他能夠很好的與ODBC(Open DataBase Connectivity)結(jié)合,具有可移植性、平臺無關(guān)性。[1~4]但是由于JDBC是基于面向過程的思想提供服務(wù)的,不符合面向?qū)ο蟮囊?,同時(shí)其易用性不能使人滿意。本文討論了基于MVC模式的JDBC對象化改進(jìn)等Web數(shù)據(jù)庫系統(tǒng)開發(fā)技術(shù)的改進(jìn)方案,從而很好地保持了JDBC的優(yōu)點(diǎn)并改進(jìn)了其在Web系統(tǒng)開發(fā)中的缺點(diǎn)。

1.1 MVC模式

MVC 模式(Model-View-Controller),即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三層——模型層、視圖層、控制層。[5,6]視圖(View)代表用戶交互界面,繪制和顯示模型的數(shù)據(jù),提交由控制器提供的數(shù)據(jù)。模型(Model)是業(yè)務(wù)流程/狀態(tài)的處理模塊,包括對業(yè)務(wù)數(shù)據(jù)的存取、加工、綜合等;維護(hù)應(yīng)用程序的狀態(tài)和數(shù)據(jù),可以接受來自視圖的查詢并做出響應(yīng);同時(shí)當(dāng)模型的數(shù)據(jù)發(fā)生變化時(shí),它把變化通知給視圖,視圖根據(jù)模型的變化來更新自己。模型的設(shè)計(jì)可以說是 MVC最主要的核心??刂疲–ontroller)是基于應(yīng)用程序的邏輯更新模型,它要告訴程序開發(fā)者,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求,控制層自身卻并不做任何的數(shù)據(jù)處理??刂茖迂?fù)責(zé)View和Model之間的流程控制,一方面是將用戶界面(View)的操作映射到具體的 Model,以完成具體的業(yè)務(wù)邏輯,另一方面是將通過Model處理完的業(yè)務(wù)數(shù)據(jù)及時(shí)反應(yīng)到用戶界面(View)上。

1.2 JDBC技術(shù)改進(jìn)

1.2.1 基于MVC模式的JDBC對象化的改進(jìn)

對于程序員來說,JDBC在數(shù)據(jù)庫連接時(shí),整個(gè)數(shù)據(jù)庫連接過程并不是面向?qū)ο蟮模敲嫦蜻^程的。[7]JDBC每次連接數(shù)據(jù)庫,同一數(shù)據(jù)庫連接流程都需要從頭到尾編譯一次,使得數(shù)據(jù)庫連接過程繁瑣,編程效率低下。[8]另外,由于數(shù)據(jù)庫操作比較復(fù)雜,對于不同的數(shù)據(jù)庫操作 JDBC中提供不同的Statemeni方法,這樣加大了編程的工作量,也不符合面向?qū)ο蟮乃枷搿?/p>

基于MVC設(shè)計(jì)思想,對JDBC的連接過程進(jìn)行了改進(jìn)。首先,將整個(gè)JDBC數(shù)據(jù)庫連接過程封裝入一個(gè)叫做DBAccess的類中,利用 DBAccess類定義的對象為程序員提供統(tǒng)一的編程接口;接著在 DBAccess類中創(chuàng)建一個(gè) public方法,即DBControl方法,用DBControl方法作為DBAccess類中的控制層;然后用ExecuteUpdate()方法執(zhí)行Insert、Update、Delete操作,用 ExecuteQuery()方法執(zhí)行 select操作等。這些對數(shù)據(jù)操作所用到的方法的調(diào)用過程對于用戶來說是透明的,實(shí)現(xiàn)了MVC設(shè)計(jì)思想中的控制層的功能。

顯然,按照上述方法封裝的DBAccess類中,DBContro1方法起到了控制層的作用。用private函數(shù)來實(shí)現(xiàn)的ExecuteUpdate()、ExecuteQuery()等方法則實(shí)現(xiàn)了具體的數(shù)據(jù)庫連接等業(yè)務(wù)流程。ExecuteUpdate()、ExecuteQuery()等方法就是DBAeeess類中的模型層,對用戶來說是不可用的、透明的。而表示層并不在 DBAccess類中,因?yàn)樵谡麄€(gè)數(shù)據(jù)庫的連接過程中并不需要考慮數(shù)據(jù)庫連接結(jié)果最后應(yīng)該如何使用。這樣,引入 MVC理念對JDBC的對象化進(jìn)行改進(jìn),可以使基于JDBC的Web數(shù)據(jù)庫系統(tǒng)具有良好的可擴(kuò)展性及靈活性。

1.2.2 JDBC移植性改進(jìn)

在 Web程序開發(fā)過程中,針對不同的數(shù)據(jù)庫產(chǎn)品,JDBC是使用不同的JDBC數(shù)據(jù)庫驅(qū)動(dòng)程序來實(shí)現(xiàn)的;在連接數(shù)據(jù)庫時(shí),JDBC利用String字符串類型的參數(shù),但是對不同的數(shù)據(jù)庫系統(tǒng),字符串參數(shù)需要發(fā)生變化。這種數(shù)據(jù)庫連接方式對數(shù)據(jù)庫系統(tǒng)的依賴性非常強(qiáng),使得JDBC在可移植性與速度的平衡方面很難令人滿意。

為改變 JDBC聯(lián)結(jié)方式對數(shù)據(jù)庫的依賴,創(chuàng)建一個(gè) Const類,用來存儲整個(gè)程序所需要的各種常量,并將JDBC數(shù)據(jù)庫接連時(shí)所用的全部 string字符串類型的參數(shù)字符串變量作為Const類的全局變量存儲。當(dāng)JDBC連接數(shù)據(jù)庫時(shí),從Const類提取相應(yīng)字符串變量傳遞給DBAccess類。

由于 Const類的引入,創(chuàng)建數(shù)據(jù)庫連接所需的字符串參數(shù)存儲在內(nèi)部文件中,數(shù)據(jù)連接的速度會有很大的改觀。同時(shí)又因?yàn)楦鬟B接參數(shù)沒有存儲在 DBAccess類文件中,很好地保持了JDBC的可移植性。當(dāng)數(shù)據(jù)庫產(chǎn)品改變時(shí),我們提練并用某種方法改變存儲于Const類中的數(shù)據(jù)庫連接參數(shù),對Const類重新編譯后即快速可順利連接改變后的數(shù)據(jù)庫,實(shí)現(xiàn)了可移植性與連接速度的統(tǒng)一。

1.2.3 JDBC返回值改進(jìn)

JDBC數(shù)據(jù)庫連接操作的返回值類型,是JDBC默認(rèn)的結(jié)果集類Resultset。Resultset類的功能十分強(qiáng)大,包含String、Int、Data等各種常用的數(shù)據(jù)類型。在傳統(tǒng)的JDBC開發(fā)中,Resultset中的數(shù)據(jù)程序員并不能直接使用,往往還需要將其轉(zhuǎn)化為其他能夠直接使用的數(shù)據(jù)類型。為解決此問題,提出了JDBC返回值的改進(jìn)方案。

首先,建立Data類。Data類繼承于由Resultset類轉(zhuǎn)化后的Hashtable類型,這樣當(dāng)創(chuàng)建JDBC數(shù)據(jù)庫的首次連接時(shí),如果結(jié)果集類Resultset中的數(shù)據(jù)較多,利用繼承于Hashtable類的Data類可以實(shí)現(xiàn)結(jié)果集中數(shù)據(jù)的快速檢索,同時(shí)Data類繼承Hashtable類方法的基礎(chǔ)上,又具有特殊的的屬性和方法,可以滿足Web數(shù)據(jù)庫連接開發(fā)的特殊性要求。

接著建立String[][]這一數(shù)據(jù)類型。基于String[][]類型的特點(diǎn),一方面它可以很輕松地將數(shù)據(jù)庫表中的數(shù)據(jù)轉(zhuǎn)化并存儲于其中,另一方面,String[][]類型中的 String類型數(shù)據(jù)很容易在JSP頁面上得到體現(xiàn),因此,String[][]類的引入很方便地將Resultset中的數(shù)據(jù)轉(zhuǎn)化為JSP頁面的數(shù)據(jù)。

由此,利用Resultset類型、繼承于改進(jìn)的Hashtable類型的Data類和String[][]類型,實(shí)現(xiàn)了對數(shù)據(jù)庫查詢操作的返回值的改進(jìn),使數(shù)據(jù)庫中的數(shù)據(jù)能夠根據(jù)用戶的要求在JSP頁面中得到顯示。

1.3 JDBC改進(jìn)技術(shù)的實(shí)現(xiàn)

按照MVC設(shè)計(jì)模式思想,利用上述方法,將Web程序開發(fā)分為表示層、控制層和模型層。在 DBAccess類封裝了控制層和模型層,利用public方法DBControl來實(shí)現(xiàn)用戶請求的初步處理和數(shù)據(jù)分流,利用四個(gè)private方法來分別實(shí)現(xiàn)用戶不同的數(shù)據(jù)庫操作請求,而單獨(dú)建立的Const類和Data類更是輔助提高了Web程序開發(fā)的效率和Web程序的性能。

采用JAVA程序設(shè)計(jì)工具和Mysql數(shù)據(jù)庫系統(tǒng),在實(shí)現(xiàn)上述改進(jìn)方案的基礎(chǔ)上,開發(fā)出一款小型Web系統(tǒng),能夠?qū)崿F(xiàn)數(shù)據(jù)的編輯、插入、刪除和查詢等功能。依照MVC理念對該Web系統(tǒng)測試,系統(tǒng)也能正常運(yùn)行。充分驗(yàn)證了本文提出的技術(shù)改進(jìn)方案的可行性和優(yōu)越性。

2 結(jié)束語

基于MVC模式,實(shí)現(xiàn)了JDBC對象化改進(jìn)和JDBC易用性的改進(jìn)。利用DBAccess類實(shí)現(xiàn)了JDBC的對象化改進(jìn),利用繼承于 Hashtable類的 Data類和 String[][]類的設(shè)計(jì)實(shí)現(xiàn)了JDBC易用性的改進(jìn)。本文設(shè)計(jì)改進(jìn)方案,不只適用于Web程序系統(tǒng),也可以應(yīng)用于其他基于 JAVA平臺的軟件系統(tǒng)。此可以很好地用于基于JDBC連接的網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的開發(fā)。

1 梁陳劍、張 威.JDBC3.0數(shù)據(jù)庫開發(fā)與設(shè)計(jì)[M].北京:北京希望電子出版社,2003.3

2 楊小平.JAVA項(xiàng)目案例導(dǎo)航[M].北京:科學(xué)出版社.2003.8

3 陸正武、張志立.JAVA 項(xiàng)目開發(fā)實(shí)踐(2)[M].北京:中國鐵道出版社,2005.7

4 李華鷹.Java中間件開發(fā)技術(shù)[M].北京:中國水利水電出版社,2005.8

5 陸榮幸、郁 洲等.J2EE平臺上MVC設(shè)計(jì)模式的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2003.20(3):144~146

6 袁梅冷、黃煙波等.J2EE應(yīng)用模型中MVC軟件體系結(jié)構(gòu)的研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2003.20(3):147~149

7 何成萬、余秋惠.MVC模型2及Struts軟件框架的研究[J].計(jì)算機(jī)工程,2002(5):274~275

8 宋善德、郭 飛.基于Java的Web數(shù)據(jù)庫的連接池技術(shù)的研究[J].計(jì)算機(jī)工程與應(yīng)用,2002.38(8):201~203

The study for improving JDBC technique in the development of the Web program

Chang Wanjun,MA Shixia

Based on the MVC model, it accomplishs to improve the objectification of JDBC through the establishment of DBAccess type.Through the designs of String [] [] type and Data type which inheritances from the improvement Hashtable type, it realizes to make JDBC easy.The Web system, designesd base on the program of improving objectification and ease for using of JDBC is able to be proper functioning by the test, which shows us that the program of improving is feasible.

MVC; technique improvement; JDBC

TP311

A

1000-8136(2010)15-0144-02

猜你喜歡
對象化程序開發(fā)易用性
政務(wù)軟件易用性評測探究
對象化的思想:人類生活中的信息
論《1844年經(jīng)濟(jì)學(xué)哲學(xué)手稿》中的對象化理論:作為馬克思哲學(xué)的開端與基石
淺析大學(xué)生在兼職小程序開發(fā)中遇到的問題
APP應(yīng)用程序開發(fā)模式探究
基于App inventor 2手機(jī)程序開發(fā)過程的學(xué)習(xí)與實(shí)——以“喵喵定時(shí)器”APP開發(fā)為例
老年人家電產(chǎn)品易用性設(shè)計(jì)研究
中國國際人才交流大會網(wǎng)站易用性評價(jià)調(diào)查問卷
探究視聽藝術(shù)中的美學(xué)體現(xiàn)
桑塔耶納美學(xué)的“解構(gòu)”與“建構(gòu)”