張景輝
摘要:進入21世紀以來,信息化技術(shù)取得了迅猛的發(fā)展,計算機的應用范圍也越來越廣泛,而在計算機技術(shù)發(fā)展的基礎(chǔ)上,數(shù)據(jù)庫管理技術(shù)也得到了極大的發(fā)展,該技術(shù)也是當今時代數(shù)據(jù)庫管理的主要技術(shù)工具,而Java數(shù)據(jù)庫的開發(fā)也就是在此技術(shù)的基礎(chǔ)上發(fā)展來的,該文對基于Java數(shù)據(jù)庫的開發(fā)技巧及應用進行了簡要的探求,以期為數(shù)據(jù)庫開發(fā)技術(shù)的進步做出一些貢獻。
關(guān)鍵詞:Java;數(shù)據(jù)庫;開發(fā);技巧;應用
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)33-0068-02
開放科學(資源服務)標識碼(OSID):
Java作為一種程序設(shè)計語言,與數(shù)據(jù)庫的開發(fā)當中有著廣泛的應用,其主要是通過JBDC來進行相應的訪問,通過有效連接,利用SQL語句來執(zhí)行相關(guān)的工作,并得到最終的結(jié)果。一般情況下,利用JBDC進行查詢訪問時是不會出現(xiàn)問題的,但是其查詢時的效率卻相對來說比較低。在企業(yè)的應用當中,雖然根據(jù)規(guī)范的編寫程序能夠保證數(shù)據(jù)的正確查詢,但是所需要的時間卻比較長,預期效果不是特別的理想。因此,對語言內(nèi)部的一些內(nèi)容進行深入探析,找到這一問題的根本原因,才能真正解決其工作效率較低的問題。
1 JDBC技術(shù)概述
1.1 JDBC訪問數(shù)據(jù)庫簡介
當前,訪問數(shù)據(jù)庫的方法主要有兩種,一種是JDBC的方法,另一種是ODBC的方法。ODBC主要是利用C語言來實現(xiàn)API,其所運用的是C語言的接口,這一方法在數(shù)據(jù)庫訪問當中應用的范圍還是很大的,但是其也存在一些不足,同時這種方式相對來說難度要高一些。另一種就是常見的JDBC方法,其是利用Java語言來進行訪問的,而且相對于C語言的接口訪問來講更為簡單,因此,在計算機數(shù)據(jù)庫訪問技術(shù)當中,Java程序員在應用當中采用更多的就是JDBC的訪問方法。
1.2 JDBC在Java WEB中的應用
在Java WEB當中,JDBC訪問方法的應用是非常廣泛的,一般情況下,JDBC能夠通過WEB來執(zhí)行對數(shù)據(jù)的查詢工作。當前,數(shù)據(jù)庫的框架搭建當中依然主要是利用JDBC API來進行搭建。在實際工作當中,Java WEB融入JBDC的時候,為了能夠使連接更加順利,一般會采用一些處理技巧,重點突出MVC理念,如此一來,WEB程序的應用范圍就能夠得到較大的擴展。MVC是一種代碼,其中M代表的是相關(guān)數(shù)據(jù)庫的模型,V代表的是用戶使用時的相關(guān)界面,C代表的是控制器。將MVC融入WEB程序當中,對于形成有效的代碼具有重要的作用,在相同的程序中進行使用,也可以將不同的表達方式呈現(xiàn)出來。
傳統(tǒng)的程序體系開發(fā)中,其對于程序的分層重視程度不夠,其中各個方面的代碼相對來說都是比較混亂的,在這種情況下,就會使得程序的表現(xiàn)并不是特別順暢。如果應用傳統(tǒng)的程序體系對相應的軟件進行維護或者升級時,其需要耗費的精力更多,而且有的情況下還會因為前期沒有進行合理的安排,導致后續(xù)的維護升級工作無法順利開展,混亂的代碼極大地增加了工作量。將MVC理念應用到數(shù)據(jù)庫開發(fā)設(shè)計當中,能夠有效解決傳統(tǒng)程序體系開發(fā)當中的代碼混亂的問題,其能夠?qū)⒗碚搶用媾c控制層面相互分開,這樣的話,就可以單獨對其進行控制,在代碼編寫當中根據(jù)不同的層級來進行相應的代碼編寫,這樣就使得整個程序體系更加有條理,而且在后期的維護和升級擴展當中,也可以根據(jù)不同的層級來進行相應的調(diào)整,極大地提升了工作的效率。
2 各種模式的JDBC接口
JDBC分為兩種API,一種是面向程序開發(fā)人員的JDBC API,另一種是面向底層的JDBC Driver API。
2.1 JDBC API
通常情況下,JDBC API存在四個重要的接口,Java.sql.Driver manage選擇數(shù)據(jù)庫驅(qū)動程序的裝載,支持新的數(shù)據(jù)庫的連接;Java.sql.Connection連接特定的數(shù)據(jù)庫;Java.sql.Statement連接數(shù)據(jù)庫執(zhí)行sql語句;Java.sql.Resultset執(zhí)行SQL語句返回結(jié)果集。
2.2 Jdbc Driver API
JDBC驅(qū)動程序中具有四種類型,JDBC-ODBC橋、本機API、面向數(shù)據(jù)庫中間件的純Java驅(qū)動程序和直接面向?qū)ο髷?shù)據(jù)庫的純Java驅(qū)動程序。
1)JDBC-ODBC橋
JDBC-ODBC橋能夠在程序當中實現(xiàn)JDBC操作和ODBC操作之間的轉(zhuǎn)換,這種技術(shù)可以將不同的數(shù)據(jù)庫進行有效的連接,但是其在應用當中也存在一些弊端,例如這類驅(qū)動程序?qū)τ诒镜貛煊兄^強的依賴性,因而其可移植性則比較弱,在語句的執(zhí)行當中效率較低,而且,因為其需要依靠本地庫來進行工作,所以在跨平臺性能方面也比較弱。
2)本機API
本機API驅(qū)動有效地實現(xiàn)了JDBC調(diào)用和本地API調(diào)用之間的轉(zhuǎn)換,其可以將查詢結(jié)果反饋給JDBC驅(qū)動器,然后由JDBC驅(qū)動器對相關(guān)結(jié)果進行轉(zhuǎn)化,最后以JDBC的形式返回給客戶端。這種驅(qū)動程序相對于JDBC-ODBC橋而言,具有更多的優(yōu)勢,在工作效率方面得到了較大幅度的提升,但是其在應用過程當中依然就要利用到數(shù)據(jù)庫廠商所提供的代碼庫,在可移植性能等方面沒有得到質(zhì)的提升。
3)面向數(shù)據(jù)庫中間件的純Java驅(qū)動程序
這類驅(qū)動是將JDBC調(diào)用翻譯成為一種網(wǎng)絡協(xié)議,其協(xié)議與數(shù)據(jù)庫之間不存在直接的聯(lián)系,可以利用中間件將不同的數(shù)據(jù)庫進行連接。這類驅(qū)動的優(yōu)勢相對來說比較明顯,其可以對各種不同的數(shù)據(jù)庫進行訪問,不再受到平臺的限制,在多層結(jié)構(gòu)應用軟件體系結(jié)構(gòu)當中有著廣泛的應用,執(zhí)行效率也比較高。
4)直接面向?qū)ο髷?shù)據(jù)庫的純Java驅(qū)動程序
這類驅(qū)動程序是完全由Java語言來實現(xiàn)的,其更加簡便,不像是其他的那些程序,想要實現(xiàn)數(shù)據(jù)庫的連接還需要通過軟件或者中間件來搭建橋梁。這種驅(qū)動程序能夠直接按照相關(guān)的數(shù)據(jù)庫系統(tǒng)規(guī)范要求進行轉(zhuǎn)化,其與數(shù)據(jù)庫服務器之間連接的距離更多,流程更少,因而其工作效率也更高,但是這也與其特定的數(shù)據(jù)庫有著直接的聯(lián)系。Ejb技術(shù)能夠?qū)Ω鞣N復雜的數(shù)據(jù)庫信息進行處理,并且還能夠完成不同類型之間信息資源的共享和統(tǒng)計查詢工作,通過Ejb技術(shù)使得電子商務或者電子政府等不同領(lǐng)域的信息能夠?qū)崿F(xiàn)更好地傳遞和轉(zhuǎn)換。
3 基于Java的數(shù)據(jù)庫開發(fā)技巧
3.1 設(shè)置Java數(shù)據(jù)庫的連接方法
基于Java數(shù)據(jù)庫的開發(fā),需要一個總的數(shù)據(jù)庫驅(qū)動器和一個中間的數(shù)據(jù)庫服務器,當前微軟的數(shù)據(jù)庫也是應用最為廣泛的數(shù)據(jù)庫服務器。除了微軟的數(shù)據(jù)庫服務器之外,開發(fā)者也可以采用一些別的數(shù)據(jù)庫服務器,因為對于Java語言來講,其受到服務器類型的影響并不是很大,而這種特別的訪問數(shù)據(jù)庫的方式也是Java語言的巨大優(yōu)勢。其次,一個良好的數(shù)據(jù)庫驅(qū)動器也是非常重要的,其不僅能夠設(shè)置不同機號的數(shù)據(jù)源,從而保障正常的連接,并且其還能夠?qū)崿F(xiàn)同步訪問,利用不同的數(shù)據(jù)庫連接方法能夠?qū)ava程序進行編制程序,這就要求開發(fā)人員首相要對JABC驅(qū)動器的相應類群接口進行接管,轉(zhuǎn)入JDBC-forname驅(qū)動器,在Class類中尋找JDBC Java Drive驅(qū)動執(zhí)行的語句,從而進行有效的數(shù)據(jù)庫連接,其主要形式為get Connection,具體形式為String url、String Password和String Userid。其中用得最多的是url,其可以與不同的數(shù)據(jù)庫之間實現(xiàn)有效連接。
3.2 有效地進行Java數(shù)據(jù)庫的連接
有效的數(shù)據(jù)庫連接需要用到DriverManage類的getConnection,getConnection采用返回具體對象的方式與方法建立起與Java數(shù)據(jù)庫的連接。Java中一個重要的對象及時SQL,SQL語言的對于數(shù)據(jù)庫連接的情況影響到整個Java數(shù)據(jù)庫,SQL包含了眾多不同的接口對象,因此其在連接當中也可以根據(jù)一些常規(guī)的方式來進行有效的連接,這些數(shù)據(jù)庫的交互連接的方法對于數(shù)據(jù)庫中數(shù)據(jù)的管理和控制也具有直接的影響。例如getConncetion接口的一些重要方法為:首先,先行關(guān)閉其中的一個數(shù)據(jù)庫的連接,然后返回到下一個對象的databasemetadata接口,這一個接口就是得到相關(guān)數(shù)據(jù)庫信息的主要接口,其能夠得到數(shù)據(jù)庫結(jié)構(gòu)和內(nèi)容等眾多信息。創(chuàng)建的普通的SQL輸入對象語句一般情況下都是由字符來構(gòu)成的,其可以通過相關(guān)程序?qū)φZ句進行預處理,這樣就使得提前處理過的對象在下一步的運用可以實現(xiàn)更加高效的編譯,從而提升工作效率。
3.3 利用查詢結(jié)果進行Java科學的集整工作
集整工作在Java數(shù)據(jù)庫的開發(fā)當中具有非常重要的意義,在數(shù)據(jù)庫中將相應的語句執(zhí)行之后,其查詢結(jié)果能夠?qū)ava語句在數(shù)據(jù)庫開發(fā)當中的各項要素進行全面的呈現(xiàn),從而使開發(fā)人員能夠清晰、直觀地看到Java語句存在的問題和優(yōu)勢。通常情況下,查詢結(jié)果會通過兩個數(shù)據(jù)庫表來進行對比展現(xiàn),作為Resultset接口的重要查詢數(shù)據(jù)表,Resultset的對象是最終的查詢結(jié)果。在實際執(zhí)行當中,從指針從初始位置開始移動,指向數(shù)據(jù)表的下一行,作為返回查詢的對象指針,也會在每次訪問之后,指向數(shù)據(jù)表當中最為明顯的一行,在提供的Resultset接口的眾多方法當中,布爾值是一種能夠全面反映數(shù)據(jù)的方法,其能夠?qū)θ我馕恢玫臄?shù)據(jù)通過查詢顯示出查詢結(jié)果,并且還能夠根據(jù)相關(guān)規(guī)則來開展集整工作,這樣對于提升工作效率具有極大的促進作用,同時其還進一步提升了SQL語句的執(zhí)行效率。
4 結(jié)束語
Java語言和Java數(shù)據(jù)庫開發(fā)對于當前數(shù)據(jù)庫設(shè)計具有重要的意義,同時其也是未來Java數(shù)據(jù)庫開發(fā)的重要導向,通過對Java數(shù)據(jù)庫開發(fā)技巧進行深入分析,對于提升Java數(shù)據(jù)庫的數(shù)據(jù)處理效率,具有重要的意義。
參考文獻:
[1] 劉琴.基于Java數(shù)據(jù)庫編程及其應用分析[J].信息與電腦(理論版),2020,32(15):152-154.
[2] 王循.Java Web快速開發(fā)框架中部分關(guān)鍵技術(shù)初步研究[D].長春:吉林大學,2015.
[3] 趙爭東.基于Java的數(shù)據(jù)庫應用框架的研究設(shè)計和探索[J].信息系統(tǒng)工程,2015(7):79,81.
[4] 蔣幫寶.基于Java的數(shù)據(jù)庫應用框架的研究設(shè)計[J].軟件工程師,2013,16(9):35-37.
[5] 陳虹君.Java Web與數(shù)據(jù)庫連接池技術(shù)的應用研究與實踐[D].成都:電子科技大學,2008.
[6] 張秀玲.利用Java技術(shù)開發(fā)Java數(shù)據(jù)庫應用系統(tǒng)[J].西北煤炭,2003,1(1):47-49.
[7] 朱涇文.基于Java的多層體系結(jié)構(gòu)數(shù)據(jù)庫應用的研究與開發(fā)[D].南京:河海大學,2001.
[8] Sommer B.The CELLmicrocosmos tools:a small history of Java-based cell and membrane modelling open source software development[J].Journal of Integrative Bioinformatics,2019,16(3).
【通聯(lián)編輯:李雅琪】