肖鴻飛
Java語(yǔ)言提供了多種的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),但是現(xiàn)有的數(shù)據(jù)庫(kù)訪問(wèn)和Java對(duì)象映射都是采用的代碼映射,這一映射關(guān)系就意味著倘若數(shù)據(jù)庫(kù)表改變,那么就需要對(duì)代碼進(jìn)行改變不便于升級(jí)以及修改。為能夠?qū)崿F(xiàn)快速準(zhǔn)確訪問(wèn)數(shù)據(jù)庫(kù),本文主要對(duì)基于Java的數(shù)據(jù)庫(kù)訪問(wèn)引擎進(jìn)行分析探究,希望能夠通過(guò)此次的研究對(duì)實(shí)際起到一定的指導(dǎo)作用。
【關(guān)鍵詞】Java 數(shù)據(jù)庫(kù) 訪問(wèn)引擎
數(shù)據(jù)是任何計(jì)算機(jī)應(yīng)用程序最為重要的內(nèi)容,計(jì)算機(jī)應(yīng)用程序的一個(gè)核心就是使某人或者是另一計(jì)算機(jī)系統(tǒng)能夠訪問(wèn)其數(shù)據(jù)。在上世紀(jì)六十年代面向?qū)ο蠹夹g(shù)的出現(xiàn)開(kāi)始,在多年的技術(shù)發(fā)展中已經(jīng)取得了很大的進(jìn)步,幾乎所有的應(yīng)用程序都需要在一個(gè)持久化的存儲(chǔ)系統(tǒng)中存放以及取回信息。
1 Java及數(shù)據(jù)庫(kù)的基本概述
Java的最大特點(diǎn)就是語(yǔ)言簡(jiǎn)潔,集多種程序設(shè)計(jì)語(yǔ)言之大成,并且是面對(duì)對(duì)象,不依賴及其結(jié)構(gòu),有著可移植性以及安全性和分布性,同時(shí)還提供了并發(fā)的機(jī)制以及多線程和高性能等,這些特性使得Java最大化的利用網(wǎng)絡(luò)。另外,Java的最小應(yīng)用程序也可以在網(wǎng)絡(luò)上傳輸并且不會(huì)受到環(huán)境以及CPU的限制,還能夠提供豐富的類庫(kù),從而使得設(shè)計(jì)者能夠容易的建立屬于自己的系統(tǒng)。最為重要的就是Java語(yǔ)言提供了方便訪問(wèn)的數(shù)據(jù)庫(kù)技術(shù),這也是未來(lái)發(fā)展的一個(gè)重要的方向。
在數(shù)據(jù)庫(kù)方面的發(fā)展也是較為的迅速,數(shù)據(jù)庫(kù)的建設(shè)規(guī)模和水平已經(jīng)成了衡量一國(guó)信息化程序的重要標(biāo)志。數(shù)據(jù)庫(kù)是長(zhǎng)期存儲(chǔ)計(jì)算機(jī)內(nèi)有組織并能夠共享的數(shù)據(jù)集合,在當(dāng)前信息化時(shí)代數(shù)據(jù)庫(kù)可說(shuō)是無(wú)處不在,這一技術(shù)也成為了計(jì)算機(jī)領(lǐng)域最為重要的技術(shù)之一,針對(duì)數(shù)據(jù)庫(kù)的發(fā)展根據(jù)數(shù)據(jù)模型能夠分為層次模型數(shù)據(jù)庫(kù)以及網(wǎng)狀模型數(shù)據(jù)庫(kù),關(guān)系模型數(shù)據(jù)庫(kù)以及面向?qū)ο笮蛿?shù)據(jù)庫(kù)。
2 基于Java的數(shù)據(jù)庫(kù)訪問(wèn)方法種類
在數(shù)據(jù)庫(kù)的訪問(wèn)方法是多方面的,首先是直接代碼嵌入,這一類型是較為常見(jiàn)的做法,也就是直接的在業(yè)務(wù)邏輯當(dāng)中嵌入SQL語(yǔ)句,從而來(lái)對(duì)對(duì)象在關(guān)系數(shù)據(jù)庫(kù)中的存取進(jìn)行實(shí)現(xiàn),其最大的優(yōu)勢(shì)就是寫代碼的效率比較高,針對(duì)小型應(yīng)用程序以及原型是可行的。但是也有著其自身的缺點(diǎn),即直接耦合了業(yè)務(wù)邏輯類和關(guān)系數(shù)據(jù)庫(kù)結(jié)構(gòu),這也就是說(shuō)一些小的改變就會(huì)致使源代碼級(jí)的修改,這樣就會(huì)使得代碼很難維護(hù)以及得到擴(kuò)展。
另外就是數(shù)據(jù)類,在實(shí)際的存儲(chǔ)中,或者是單獨(dú)的數(shù)據(jù)類中的硬代碼,持久化操作就會(huì)被封裝在單個(gè)或者是多個(gè)的數(shù)據(jù)類當(dāng)中,在對(duì)數(shù)據(jù)庫(kù)進(jìn)行改動(dòng)之后還是需要進(jìn)行修改以及重新的編譯數(shù)據(jù)類,這一方法的適用性不是很普遍,對(duì)于小型的系統(tǒng)不會(huì)頻繁修改。如圖1所示。
最后就是持久層類型的方法,也就是關(guān)系數(shù)據(jù)庫(kù)訪問(wèn)層,這一方法就是針對(duì)實(shí)現(xiàn)數(shù)據(jù)持久化應(yīng)用領(lǐng)域某特定系統(tǒng)的邏輯層面,它主要就是把數(shù)據(jù)的實(shí)體和使用者相關(guān)聯(lián),這一類型的方法主要就是建立將對(duì)象映射到某種持久機(jī)制并對(duì)關(guān)系數(shù)據(jù)庫(kù)結(jié)構(gòu)的簡(jiǎn)單改動(dòng)不產(chǎn)生影響的面向?qū)ο蟠a的持久層。
3 基于Java的數(shù)據(jù)庫(kù)訪問(wèn)引擎的具體探究
基于Java的數(shù)據(jù)庫(kù)訪問(wèn)操作能夠?qū)?shù)據(jù)庫(kù)模型描述進(jìn)行解釋,可以把數(shù)據(jù)庫(kù)的表動(dòng)態(tài)應(yīng)射成Java對(duì)象,通過(guò)對(duì)數(shù)據(jù)庫(kù)模型描述以及操作條件生成SQL語(yǔ)句。JDBC是Java和數(shù)據(jù)庫(kù)接口規(guī)范,是通過(guò)Java語(yǔ)言所編寫的類以及界面組成,定義了一個(gè)支持SQL功能的通用低層應(yīng)用程序編程接口,JDBC API又定義了多個(gè)Java中的類,表示數(shù)據(jù)庫(kù)連接,SQL指令以及數(shù)據(jù)庫(kù)元數(shù)據(jù)和結(jié)果集,在功能上與ODBC是一樣的,主要就是使得開(kāi)發(fā)人員能夠提供統(tǒng)一的標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)訪問(wèn)接口。
首先在JDBC接口的選擇方面,需要不同模式的JDBC接口,一個(gè)合適的接口非常重要,在Java數(shù)據(jù)庫(kù)批量更新機(jī)制的引入方面,傳統(tǒng)數(shù)據(jù)更新只使用單個(gè)statement接口上或者其子接口上的exeeuteUpdate()或者execute()方法調(diào)用來(lái)提交更新,一次只能提交一個(gè)更新。在數(shù)據(jù)量的不斷增大的同時(shí),這就會(huì)對(duì)數(shù)據(jù)庫(kù)更新的速度產(chǎn)生很大的影響,故此在JDBC核心的API引入新的更新機(jī)制就能夠使得用戶創(chuàng)建一批和語(yǔ)句對(duì)象有著關(guān)聯(lián)的更新,再通過(guò)一次太用將這些更新的命令交給數(shù)據(jù)庫(kù),通過(guò)數(shù)據(jù)庫(kù)來(lái)進(jìn)行處理,這在很大的程度上就會(huì)提高其自身的訪問(wèn)速率,在這一過(guò)程當(dāng)中用戶需要對(duì)數(shù)據(jù)庫(kù)和驅(qū)動(dòng)程序的配置支持的批量更新與否采取DatabaseMetaData對(duì)象上的supportBatehupdates()方法來(lái)進(jìn)行確定,不然就會(huì)發(fā)生數(shù)據(jù)的沖突。
在對(duì)數(shù)據(jù)庫(kù)訪問(wèn)引擎的效率方面要能夠進(jìn)行有效的提高,首先就是要能夠選擇比較合適的JDBC驅(qū)動(dòng)程序,這是最為關(guān)鍵的方面。JDBC ODBC bridge driver其自身最為優(yōu)越之處就是多數(shù)驅(qū)動(dòng)程序都支持ODBC驅(qū)動(dòng)程序,這一類型的數(shù)據(jù)庫(kù)不要修改就能夠和JDBC進(jìn)行一期工作。還要能夠使用數(shù)據(jù)庫(kù)鏈接技術(shù),以及使用JavaBean技術(shù)封裝對(duì)數(shù)據(jù)庫(kù)的操作方法,引入數(shù)據(jù)庫(kù)批量更新機(jī)制和利用Java多線程及線程池技術(shù),這些都能夠有效的提高數(shù)據(jù)庫(kù)的訪問(wèn)效率,
4 結(jié)語(yǔ)
總而言之,基于Java的數(shù)據(jù)庫(kù)訪問(wèn)引擎的解決方案要能夠從多方面進(jìn)行考慮,在今后的發(fā)展過(guò)程中,隨著我國(guó)的科學(xué)技術(shù)的不斷進(jìn)步,定將能夠在這一領(lǐng)域取得優(yōu)異的成績(jī),對(duì)于當(dāng)前數(shù)據(jù)庫(kù)訪問(wèn)的一些難題也定能夠得到有效的解決。
參考文獻(xiàn)
[1]王華,蘇中濱,王崇.畜產(chǎn)品溯源系統(tǒng)中基于XML的異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)交換技術(shù)的研究[J].自動(dòng)化技術(shù)與應(yīng)用,2014(01).
[2]嚴(yán)驪.超市ERP系統(tǒng)跨平臺(tái)遷移方案研究和應(yīng)用探析[J].硅谷,2013(12).
[3]夏躍偉,魏銳,劉金廣.基于MVC智能高清卡口信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2013(08).
作者單位
同濟(jì)大學(xué) 上海市 201804
天津海事測(cè)繪中心 天津市 300222endprint