摘 要:在Java Web項(xiàng)目開發(fā)中需要呈現(xiàn)用戶數(shù)據(jù)查詢結(jié)果,利用JDBC數(shù)據(jù)訪問技術(shù),設(shè)計(jì)一個(gè)通用的Web組件-DataTable。根據(jù)用戶需要實(shí)現(xiàn)動(dòng)態(tài)查詢,并利用查詢結(jié)果為數(shù)據(jù)源構(gòu)建類。用戶使用時(shí)只需動(dòng)態(tài)加載數(shù)據(jù)源、樣式文件等就可以呈現(xiàn)具備各種風(fēng)格的數(shù)據(jù),縮短項(xiàng)目周期,提高開發(fā)效率。
關(guān)鍵詞:查詢;Web;組件;JDBC
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言(Introduction)
隨著企業(yè)信息化建設(shè)水平的發(fā)展,基于Java Web技術(shù)的B/S架構(gòu)項(xiàng)目開發(fā),成為開發(fā)的主流技術(shù)[1]。在實(shí)際項(xiàng)目開發(fā)過程中,查詢結(jié)果的數(shù)據(jù)呈現(xiàn)是大多數(shù)系統(tǒng)必備功能。然而,現(xiàn)有Java開發(fā)工具中并沒有提供用于呈現(xiàn)查詢結(jié)果的通用組件,在設(shè)計(jì)過程中功能模塊與界面設(shè)計(jì)密切關(guān)聯(lián)。當(dāng)用戶查詢發(fā)生改變,就必須重新編寫代碼。這種模式不利于代碼維護(hù)及用戶使用,開發(fā)效率較低。因此,如何設(shè)計(jì)一個(gè)通用Web組件DataTable:當(dāng)用戶業(yè)務(wù)需求發(fā)生變化時(shí),不需重寫代碼,只需通過動(dòng)態(tài)加載數(shù)據(jù)源、簡單修改用戶樣式文件,達(dá)到動(dòng)態(tài)呈現(xiàn)數(shù)據(jù)目的,這樣既可以提高開發(fā)效率、縮短項(xiàng)目周期,又方便用戶使用。
2 系統(tǒng)設(shè)計(jì)(System design)
2.1 設(shè)計(jì)思路
依據(jù)組件通用設(shè)計(jì)思路,設(shè)計(jì)一個(gè)通用查詢結(jié)果數(shù)據(jù)呈現(xiàn)組件DataTable。該組件的前臺(tái)展示樣式由用戶自行設(shè)計(jì),查詢條件完全取決于用戶需求,可以隨意創(chuàng)建、沒有任何限制,用戶只需動(dòng)態(tài)加載查詢結(jié)果數(shù)據(jù)源即可。組件工作模型如圖1所示。
圖1 DataTable工作模型
Fig.1 DataTable working model
2.2 技術(shù)方案(Technical scheme)
2.2.1 JDBC技術(shù)方案
采用Java作為組件開發(fā)語言,它不直接運(yùn)行在操作系統(tǒng)上,而是通過Java虛擬機(jī)與底層操作系統(tǒng)進(jìn)行交互處理,具備統(tǒng)一的編程接口、可方便移植,確保系統(tǒng)與用戶的安全性。采用JDBC數(shù)據(jù)庫訪問技術(shù),實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫系統(tǒng)的統(tǒng)一訪問。JDBC建立了一個(gè)數(shù)據(jù)庫的公共應(yīng)用程序訪問接口,實(shí)現(xiàn)通過基于平臺(tái)程序或驅(qū)動(dòng)程序來實(shí)現(xiàn)數(shù)據(jù)庫透明訪問。采用SQL語句實(shí)現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)存取?;贘ava及JDBC技術(shù)的應(yīng)用系統(tǒng)具備安全性高、執(zhí)行速度快、可靠性和可移植性強(qiáng)等特點(diǎn)?;贘ava-JDBC三層應(yīng)用模型如圖2所示。
圖2 應(yīng)用模型
Fig.2 Application model
2.2.2 DataTable組件通用類設(shè)計(jì)
軟件設(shè)計(jì)組件是指可以進(jìn)行獨(dú)立分離的、易于重復(fù)使用的功能對象[2]?;贘ava的Web通用DataTable組件是指在任何基于Java的Web應(yīng)用程序中均可使用的數(shù)據(jù)呈現(xiàn)組件,同時(shí)支持記錄自動(dòng)分頁。DataTable組件構(gòu)建在數(shù)據(jù)庫基礎(chǔ)之上,將數(shù)據(jù)庫連接、數(shù)據(jù)記錄查詢、數(shù)據(jù)處理、樣式文件等整合到一起構(gòu)成DataTable組件。這樣其他Web應(yīng)用程序便可使用該組件進(jìn)行快速開發(fā),提高開發(fā)效率,其通用類設(shè)計(jì)如圖3所示。
圖3 通用類設(shè)計(jì)
Fig.3 General class design
3 系統(tǒng)實(shí)現(xiàn)(System implementation)
DataTable組件采用Visio設(shè)計(jì)模型、使用MyEclipse開發(fā)工具,主要使用HTML、Css、JavaScript、JSP、Servlet等Java Web開發(fā)技術(shù)[3];使用Access作為后臺(tái)數(shù)據(jù)庫,用戶可根據(jù)實(shí)際開發(fā)需要選擇數(shù)據(jù)庫;使用Tomcat作為Web服務(wù)器。采用JavaScript的事件處理與HTML及進(jìn)行用戶交互,經(jīng)處理實(shí)現(xiàn)用戶數(shù)據(jù)感知[4]。其具體實(shí)現(xiàn)步驟如下:
第一步:新建一個(gè)JavaWeb工程:DataTableDemo。
第二步:利用Access建立一個(gè)DB數(shù)據(jù)庫,并在該數(shù)據(jù)庫中建立一張名為User的數(shù)據(jù)表,其表結(jié)構(gòu)如表1所示。
表1 User數(shù)據(jù)表設(shè)計(jì)
Tab.1 User DataTable design
字段名 數(shù)據(jù)類型
User_ID 自動(dòng)編號(hào)
User_Code 文本
User_Name 文本
User_Sex 文本
User_Type 文本
User_Password 文本
User_Tel 文本
User_Email 文本
User_Address 文本
User_PostCode 文本
第三步:新建通用的DbHelp數(shù)據(jù)庫訪問類、DataTable類,具體結(jié)構(gòu)如通用類設(shè)計(jì)圖。
第四步:新建數(shù)據(jù)表樣式文件DataTableCss及用于用戶交互的DataTable.js文件。
第五步:導(dǎo)入數(shù)據(jù)庫訪問類、DataTable類、DataTableCss、DataTale.js等文件,以Web形式顯示user數(shù)據(jù)表中數(shù)據(jù),其處理效果如圖4所示。
圖4 DataTable組件應(yīng)用
Fig.4 Application of DataTable components
4 結(jié)論(Conclusion)
在使用現(xiàn)有的Java Web開發(fā)技術(shù)及工具下,通過構(gòu)建Web通用開發(fā)組件,既滿足了用戶業(yè)務(wù)需求的不斷變化,又適用于所有基于Java Web技術(shù)的項(xiàng)目開發(fā)。DataTable組件現(xiàn)已應(yīng)用到了多個(gè)基于Java的Web企業(yè)信息系統(tǒng)開發(fā)項(xiàng)目,提高了工作效率,明顯縮短了項(xiàng)目周期。
參考文獻(xiàn)(References)
[1] 舒紅平,劉魁.基于Java Web的通用組件設(shè)計(jì)及應(yīng)用[J].成都信 息工程學(xué)院學(xué)報(bào),2006,21(3):31-35.
[2] 李華彪.Java中間件技術(shù)及其應(yīng)用開發(fā)[M].北京:中國水利水 電出版社,2012:70-72.
[3] 舒紅平.基于Java的審批流程管理設(shè)計(jì)及實(shí)現(xiàn)[J].成都信息工 程學(xué)院學(xué)報(bào),2011,19(1):12-17.
[4] 彭智勇,黃澤謙.基于對象代理數(shù)據(jù)庫的微生物信息服務(wù)系統(tǒng) [J].計(jì)算機(jī)應(yīng)用,2010,30(1):5-8.
作者簡介:
譚海中(1979-),男,碩士,高級(jí)工程師.研究領(lǐng)域:軟件工 程,WEB數(shù)據(jù)庫技術(shù)應(yīng)用,數(shù)據(jù)挖掘.