一種基于jdbc的web數(shù)據(jù)庫開發(fā)組件的方法【專利摘要】一種基于JDBC的WEB數(shù)據(jù)庫開發(fā)組件的方法是利用MVC模式的封裝,使整個JDBC數(shù)據(jù)庫連接過程對程序員來說變的透明,程序員在開發(fā)中可以繞開繁瑣復(fù)雜的JDBC數(shù)據(jù)庫連接步驟,而只需面對由網(wǎng)絡(luò)數(shù)據(jù)庫開發(fā)組件提供的統(tǒng)一的編程接口?!緦@f明】一種基于JDBC的WEB數(shù)據(jù)庫開發(fā)組件的方法【
技術(shù)領(lǐng)域:
】[0001]一種基于JDBC的WEB數(shù)據(jù)庫開發(fā)組件的方法主要是涉及計算機領(lǐng)域中的數(shù)據(jù)存儲技術(shù)?!?br>背景技術(shù):
】[0002]第三代Web數(shù)據(jù)庫使所有對數(shù)據(jù)庫的操作(增加、刪除、修改)、信息的查詢和管理都通過統(tǒng)一標準的Internet瀏覽器界面來進行,這對于那些終端用戶來說是極好的方式,也更加適應(yīng)Internet技術(shù)的發(fā)展和網(wǎng)絡(luò)互連的需要。和許多傳統(tǒng)的數(shù)據(jù)庫一樣,web數(shù)據(jù)庫是一種可供用戶訪問的數(shù)據(jù)倉庫或信息存儲庫,然而web數(shù)據(jù)庫是一個新的研究領(lǐng)域,與傳統(tǒng)數(shù)據(jù)庫系統(tǒng)又有許多不同的方面,例如:體系結(jié)構(gòu)不同、訪問方式不同、訪問的用戶不同、客戶端簡化等。正是這些不同,決定了WEB數(shù)據(jù)庫程序的復(fù)雜性。為了解決這種復(fù)雜性,各個公司都紛紛推出自己的解決方案,中間件的概念也應(yīng)運而生?!?br/>發(fā)明內(nèi)容】[0003]通過國家專利檢索沒有發(fā)現(xiàn)關(guān)于此系統(tǒng)方面的申請資料。[0004]對JDBC進行對象化改進,以期達到如下效果:1)將整個數(shù)掘庫連接過程封裝,屏蔽掉其間復(fù)雜繁瑣的連接步驟;2)讓封裝后的JDBC連接對象對程序員提供統(tǒng)一的編程接口,使程序員可以使用同樣的函數(shù)方法來實現(xiàn)不同的數(shù)掘庫操作。[0005]為了實現(xiàn)上述要求的第一項,也就是實現(xiàn)JDBC數(shù)據(jù)庫連接的封裝,首先將整個JDBC數(shù)據(jù)庫連接過程封裝入一個叫做DBAceess的類中。按照MVC的設(shè)計思想,控制層正好能實現(xiàn)上述要求中的第二項,因此在對象化后的YDBC連接類中,控制層就是為程序員提供的統(tǒng)一編程接口。這樣我們就需要讓這個接口實現(xiàn)MVC模式中控制層的功能。期望最終用戶只需與這個統(tǒng)一編程接口對話即可,而不用理會數(shù)據(jù)庫連接的具體方法和細節(jié)。DBAcccss類中創(chuàng)建一個public方法,叫做DBControl,然后將DBControl方法作為整個DBAcccss類中的控制層。[0006]按照MVC設(shè)計模式思想,我們將整個JDBC開發(fā)組件分為三層:表示層、控制層和模型層。在DBAccess類我們封裝了控制層和模型層。利用public方法DBControl來實現(xiàn)用戶請求的初步處理和數(shù)據(jù)分流,利用四個private方法來分別實現(xiàn)用戶不同的數(shù)據(jù)庫操作請求。另外創(chuàng)建兩個輔助類Const類和Data類來提高整個數(shù)掘庫丌發(fā)組件的性能。[0007]Const類的實現(xiàn):另外創(chuàng)建一個Const類,專門用來存儲整個程序所需要的各種常量,將上述各個字符串變量作為Const類的全局變量存儲。當需要連接時,從Const類提取相應(yīng)字符串變量傳遞給DBAccess類,當系統(tǒng)所選用的數(shù)據(jù)庫產(chǎn)品更改時,我們只需重新編譯存儲這些參數(shù)的Const類即可。[0008]const類的代碼:publicfinalclassConst{publicstaticstringSQLDRIVERNAME=,,org.git.mm.mysql.Driver,,;publicstaticstringSQLURL=”jdbc:mysql://DLMUDXF/TEXT”;publicstaticstringSQLUSERID=”ROOT”;publicstaticstringSQLPASSWORD=””;}其中SQLDRIVERNAME存儲JDBC數(shù)據(jù)庫連接所需要的數(shù)據(jù)庫驅(qū)動程序名。SQLURL存儲數(shù)據(jù)庫的地址。SQLUSERID存儲登錄數(shù)據(jù)庫所用的用戶名。SQLPASSWORD存儲登錄用密碼。當JDBC連接的數(shù)據(jù)庫系統(tǒng)發(fā)生變化時,或者該系統(tǒng)的相關(guān)參數(shù)發(fā)生變化,我們只需修改Const類中相應(yīng)字段即可。[0009]Data類的實現(xiàn):Data類是在Hashtable類型基礎(chǔ)上改進得到的,他是一種適于存儲數(shù)掘庫查詢結(jié)果集的數(shù)據(jù)類型。因此,在Data類中我們設(shè)計了三個主要的私有屬性,用柬存放相關(guān)的數(shù)據(jù)。[0010]PrivateHashtabledata=null;Privateintindex=-1;PrivateVectorcolumnNameVec=null;其中privateHashtabledata就是最終用來存儲數(shù)據(jù)庫查詢結(jié)果集的哈希表。privateimindex是用戶在使用Data對象時所需要的虛擬指針。privateVectorcoIumnNameVec是一個向量,用來存儲數(shù)據(jù)庫查詢結(jié)果集的列名,也就是查詢出末的數(shù)掘庫表的字段名。這罩之所以使用Vector向量這種數(shù)據(jù)結(jié)構(gòu),主要是考慮到Vecmr向量可以自伸縮的特點。因為在實際使用中,我們查詢的數(shù)據(jù)庫表的字段數(shù)日是小確定的,因此我們需要Vector向量這種靈活的,可以自己伸縮長度的數(shù)掘結(jié)構(gòu)來存儲相應(yīng)的數(shù)據(jù)庫表字段名。這三個屬性都被設(shè)置成private型私有變量,這也是符合面向?qū)ο蟮姆庋b思想的。用戶如果需要獲得者三個屬性,不能直接讀取他們,而必須通過相對應(yīng)的函數(shù)方法來取得。因此我們在Data類中定義了三個函數(shù)方法,專門用來取得相對應(yīng)的屬性。例如,如果想要取得privateHashtabledata,程序員必須通過getTable方法。GetTable方法的代碼如下:PublicHashtablegettable(){Returndata;}Data類中最重要的一個方法,是publicData(ResultSe!tp—da詛)方法,這也是Data類的初始化函數(shù)。其功能是對傳入的ResultSet類型的參數(shù)p—data進行數(shù)據(jù)解構(gòu),并存儲到Hashtabledata中。publicDat“)方法的具體代碼如下:publicData(ResultSetp_data){try{this.data=newHashtableO;imfieldCount2p—data.getMetaData0.getCoIumnCountO;columnNameVec=newVector();for(inti=l;i〈=fieldCount;i++){StringcoIumnName5p—data.getMetaData0.getColumnName(i);coIumnNameVec.addElement(colunmName);【權(quán)利要求】1.一種基于JDBC的WEB數(shù)據(jù)庫開發(fā)組件的方法,其特征是將整個數(shù)掘庫連接過程封裝,屏蔽掉其間復(fù)雜繁瑣的連接步驟;讓封裝后的JDBC連接對象對程序員提供統(tǒng)一的編程接口。2.根據(jù)權(quán)利要求1的要求將整個JDBC開發(fā)組件分為三層:表示層、控制層和模型層。3.根據(jù)權(quán)利要求2的要求將創(chuàng)建DBAccess類,其DBAccess封裝了控制層和模型層;利用public方法來實現(xiàn)用戶請求的初步處理和數(shù)據(jù)分流,利用四個private方法來分別實現(xiàn)用戶不同的數(shù)據(jù)庫操作請;創(chuàng)建兩個輔助類Const類和Data類來提高整個數(shù)掘庫丌發(fā)組件的性能。4.根據(jù)權(quán)利要求2的要求其Const類的主要功能是存儲在整個WEB程序中所用道的各種常量;Data類是在Hashtable類型基礎(chǔ)上改進得到的,他是一種適于存儲數(shù)掘庫查詢結(jié)果集的數(shù)據(jù)類型?!疚臋n編號】G06F9/44GK103809944SQ201210441628【公開日】2014年5月21日申請日期:2012年11月8日優(yōu)先權(quán)日:2012年11月8日【發(fā)明者】羅正偉申請人:鎮(zhèn)江華揚信息科技有限公司