蔣幫寶
摘 要:一直以來(lái),軟件的開(kāi)發(fā)和數(shù)據(jù)庫(kù)之間的設(shè)計(jì)具有十分重要的聯(lián)系。本文筆者通過(guò)實(shí)驗(yàn),首先簡(jiǎn)單闡述了關(guān)于框架技術(shù)以及Java 數(shù)據(jù)庫(kù)技術(shù)之間的關(guān)系,然后具體進(jìn)行數(shù)據(jù)庫(kù)框架模型的研究設(shè)計(jì),最后利用程序真正實(shí)現(xiàn)了基于Java的數(shù)據(jù)庫(kù)應(yīng)用框架的設(shè)計(jì),希望能夠?qū)ο嚓P(guān)研究者有所幫助,為信息產(chǎn)業(yè)的快速發(fā)展提供幫。
關(guān) 鍵 詞:Java;數(shù)據(jù)庫(kù);應(yīng)用框架;研究設(shè)計(jì);數(shù)據(jù)庫(kù)框架
近年來(lái),隨著信息技術(shù)的不斷提升,人們對(duì)于軟件的需求也越來(lái)越高,進(jìn)而關(guān)于計(jì)算機(jī)軟件的開(kāi)發(fā)以及應(yīng)用也更加廣泛。在使用數(shù)據(jù)庫(kù)的時(shí)候,如果每一個(gè)程序員都利用自己的類,那么將會(huì)增加程序員自身的工作量,同時(shí)也提升了軟件開(kāi)發(fā)之中潛在錯(cuò)誤的發(fā)生率,而且在很大的程度上也降低了數(shù)據(jù)庫(kù)操作的隨意性,導(dǎo)致一些代碼無(wú)法復(fù)用。為了更好的開(kāi)發(fā)系統(tǒng)軟件,實(shí)現(xiàn)軟件開(kāi)發(fā)的廣泛利用,其中,基于Java的數(shù)據(jù)庫(kù)應(yīng)用框架的研究設(shè)計(jì)就顯得尤為重要。
一、關(guān)于框架技術(shù)以及Java數(shù)據(jù)庫(kù)技術(shù)之間的關(guān)系
現(xiàn)階段,大量的軟件開(kāi)發(fā)實(shí)踐表明,基本上所有的軟件開(kāi)發(fā)都是在一定的已有代碼,框架以及組件的基礎(chǔ)上實(shí)施的二次開(kāi)發(fā),并且以框架為基礎(chǔ)的二次開(kāi)發(fā)也應(yīng)經(jīng)被業(yè)界軟件開(kāi)發(fā)所認(rèn)同,并形成共識(shí),也被應(yīng)用在數(shù)據(jù)庫(kù)開(kāi)發(fā)之中。在當(dāng)前情況下,利用數(shù)據(jù)庫(kù)框架進(jìn)行軟件開(kāi)發(fā)具有以下幾方面的優(yōu)勢(shì):第一,統(tǒng)一執(zhí)行任務(wù)的方式,提高執(zhí)行任務(wù)方式的一致性;第二,構(gòu)建開(kāi)發(fā)人員同數(shù)據(jù)庫(kù)之間的中間層,有效地降低了軟件開(kāi)發(fā)設(shè)計(jì)的風(fēng)險(xiǎn);第三,有效的隱藏了數(shù)據(jù)庫(kù)操作的復(fù)雜性,使得復(fù)雜任務(wù)的處理也具有標(biāo)準(zhǔn)的操作程序[1]。其中,如圖1所示,為關(guān)于利用框架處理復(fù)雜任務(wù)的標(biāo)準(zhǔn)。另外,關(guān)于Java 開(kāi)發(fā)同樣也利用了大量的數(shù)據(jù)庫(kù)框架。在應(yīng)用的所有數(shù)據(jù)庫(kù)框架之中,應(yīng)用最廣泛地就是“Hibernate 框架”,其中,Hibernate 框架對(duì)于大型軟件系統(tǒng)的開(kāi)發(fā)更加方便[2]。
另外,Java是一種簡(jiǎn)單的,面象對(duì)象的,分布式的,解釋的,鍵壯的安全的,結(jié)構(gòu)的中立的,可移植的,性能很優(yōu)異的多線程的,動(dòng)態(tài)的語(yǔ)言。Java建立在擴(kuò)展TCP/IP網(wǎng)絡(luò)平臺(tái)上。庫(kù)函數(shù)提供了用HTTP和FTP協(xié)議傳送和接受信息的方法。這使得程序員使用網(wǎng)絡(luò)上的文件和使用本機(jī)文件一樣容易。關(guān)于Java 數(shù)據(jù)庫(kù)技術(shù),它是一種基于JAVA 語(yǔ)言訪問(wèn)數(shù)據(jù)庫(kù)的技術(shù)。其中,Java 數(shù)據(jù)庫(kù)技術(shù)針對(duì)訪問(wèn)數(shù)據(jù)庫(kù)提供了專門的接口,并且關(guān)于Java 數(shù)據(jù)庫(kù)技術(shù)的實(shí)現(xiàn)主要是由數(shù)據(jù)庫(kù)廠商提供的,關(guān)于編程也主要是針對(duì)接口進(jìn)行的。在Java 數(shù)據(jù)庫(kù)技術(shù)實(shí)現(xiàn)的過(guò)程之中,為了簡(jiǎn)化程序員的操作,數(shù)據(jù)庫(kù)之中一共有五個(gè)十分關(guān)鍵的接口。具體如下所示:第一,Connection,具有保存特定的數(shù)據(jù)庫(kù)連接或者是會(huì)話功能,可以幫助程序員連接上下文,執(zhí)行SQL 語(yǔ)句,同時(shí)返回其結(jié)果。第二,Statement,幫助執(zhí)行靜態(tài)SQL 語(yǔ)句,同時(shí)能夠返回其所生成的結(jié)果對(duì)象。第三,Prepared Statement,主要用來(lái)顯示預(yù)編譯的SQL 語(yǔ)句對(duì)象。第四,Callable Statement,在執(zhí)行SQL 存儲(chǔ)過(guò)程中具有十分重要的作用。第五,ResultSet,通常主要用來(lái)表示數(shù)據(jù)庫(kù)結(jié)果集的數(shù)據(jù)表,有助于實(shí)現(xiàn)執(zhí)行查詢數(shù)據(jù)庫(kù)的語(yǔ)句生成。其中,關(guān)于這五個(gè)接口之間的相互關(guān)系主要如下圖2所示。另外,關(guān)于Java 數(shù)據(jù)庫(kù)技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)的主要流程為:“加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序” →“ 建立與數(shù)據(jù)庫(kù)的連接” →“ 執(zhí)行SQL 語(yǔ)句” →“ 處理結(jié)果” →“ 釋放數(shù)據(jù)庫(kù)連接”。
二、關(guān)于數(shù)據(jù)庫(kù)框架模型的研究設(shè)計(jì)
(一)數(shù)據(jù)庫(kù)框架模型
java的面向?qū)ο笏枷胫饕莝un的JDK,其他的框架只不過(guò)是對(duì)底層的東西的一種封裝,更加方便使用而已。但是,依照上文之中關(guān)于框架技術(shù)以及Java 數(shù)據(jù)庫(kù)技術(shù)的概述以及兩者之間的關(guān)系,設(shè)計(jì)者構(gòu)建出數(shù)據(jù)庫(kù)框架模型如圖3所示。
如圖3所示,數(shù)據(jù)庫(kù)框架主要是由一個(gè)接口以及四個(gè)類組成的。其中,關(guān)于Parser接口,主要是用來(lái)定義了一個(gè)解析器的標(biāo)準(zhǔn)。關(guān)于“parse()方法”可以幫助實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)配置文件進(jìn)行解析,同時(shí)還可以利用“DatabaseConfigInfor”實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)配置信息的包裝,有助于實(shí)現(xiàn)數(shù)據(jù)庫(kù)配置信息的傳輸。另外,對(duì)于四個(gè)類而言:ParserAdapter類,屬于抽象類,有助于Parser 接口方法的空實(shí)現(xiàn),可以防止程序員創(chuàng)建該類的對(duì)象。XMLParser類,屬于非抽象類,主要用來(lái)實(shí)現(xiàn)對(duì)XML配置文件的解析作用。Database ConfigInfor類,主要是用來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)配置信息的存儲(chǔ)。DBConnection類,主要用來(lái)實(shí)現(xiàn)操作數(shù)據(jù)庫(kù)。在進(jìn)行操作的過(guò)程中,首先實(shí)現(xiàn)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的加載,繼而進(jìn)行數(shù)據(jù)庫(kù)連接對(duì)象的創(chuàng)建[3]。
(二)Java數(shù)據(jù)庫(kù)連接
關(guān)于Java數(shù)據(jù)庫(kù)連接體系結(jié)構(gòu),主要是用來(lái)實(shí)現(xiàn)Java應(yīng)用程序連接數(shù)據(jù)庫(kù),它屬于一種標(biāo)準(zhǔn)的連接方法。對(duì)于Java程序員而言,數(shù)據(jù)庫(kù)連接過(guò)程中,最為重要的便是API,它可以有效的實(shí)現(xiàn)同數(shù)據(jù)庫(kù)之間的連接服務(wù),同時(shí)它也是接口模型。盡管如此,API仍舊能夠幫助第三方中間件廠商以及數(shù)據(jù)庫(kù)廠商之間的連接,并且根據(jù)其為程序開(kāi)發(fā)員提供專門的接口模型,繼而為連接提供標(biāo)準(zhǔn)的方法。另一方面,如ODBC之間的橋接等,都屬于Java數(shù)據(jù)庫(kù)連接的標(biāo)準(zhǔn)??傊?,關(guān)于Java數(shù)據(jù)庫(kù)連接,能夠真正的實(shí)現(xiàn)面向標(biāo)準(zhǔn)的目標(biāo)以及高性能的接口定義。其中,關(guān)于Java數(shù)據(jù)庫(kù)連接應(yīng)用程序的基本步驟主要如下:注冊(cè)驅(qū)動(dòng)→建立數(shù)據(jù)庫(kù)連接→創(chuàng)建數(shù)據(jù)庫(kù)操作對(duì)象→執(zhí)行SQL→處理結(jié)果集→關(guān)閉JDBC對(duì)象。
三、基于Java的數(shù)據(jù)庫(kù)應(yīng)用框架的設(shè)計(jì)實(shí)現(xiàn)
四、小結(jié)
綜上所述,筆者主要分析了數(shù)據(jù)庫(kù)框架的設(shè)計(jì)以及開(kāi)發(fā)過(guò)程,為了防止開(kāi)發(fā)者在進(jìn)行操作數(shù)據(jù)庫(kù)代碼的編寫時(shí)出現(xiàn)重復(fù)現(xiàn)象,設(shè)計(jì)者可以把其應(yīng)用在數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)開(kāi)發(fā)之中。而且,根據(jù)筆者的實(shí)驗(yàn),在Java 應(yīng)用系統(tǒng)的開(kāi)發(fā)之中,上述方法也是十分有效,然而,在利用的過(guò)程之中,設(shè)計(jì)者必須編寫相應(yīng)的數(shù)據(jù)訪問(wèn)對(duì)象類??傊?,想要實(shí)現(xiàn)框架的擴(kuò)展,需要設(shè)計(jì)者進(jìn)一步的研究。
參考文獻(xiàn)
[1] 羅金濤,李躍新.基于Java的數(shù)據(jù)庫(kù)連接池技術(shù)的算法實(shí)現(xiàn)[J].硅谷,2009(05):12-13.
[2] 褚媛,等.基于Java的數(shù)據(jù)庫(kù)連接池技術(shù)在即時(shí)通信系統(tǒng)中的應(yīng)用[J].電腦開(kāi)發(fā)與應(yīng)用, 2008(02):69-71.
[3] 朱超,王一舉.基于JAVA的短消息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].孝感學(xué)院學(xué)報(bào),2009(06):21-22.