- 相關(guān)推薦
JDBC數據庫編程的研究
摘要:在Web應用程序設計中,提升數據庫的響應性能是改善應用性能的關(guān)鍵;贘DBC的Web數據庫應用中,使用JDBC的優(yōu)化技術(shù),改善數據模型,可提高Web應用程序的響應性能。
關(guān)鍵詞:Java JDBC JDBC API 數據庫 優(yōu)化
0 引言
目前,Web應用程序正在以非?斓乃俣仍谠鲩L(cháng),Web應用程序不再是簡(jiǎn)單顯示信息的網(wǎng)站,而逐漸融合核心的業(yè)務(wù)邏輯,成為IT領(lǐng)域的業(yè)務(wù)處理平臺。Java以其面向對象、跨平臺、安全性、健壯性等優(yōu)秀特性已成為開(kāi)發(fā)Web應用的主要選擇;贘DBC的結構和應用模式JDBC是一種可用于執行SQL語(yǔ)句的Java API,由一些Java語(yǔ)言編寫(xiě)的類(lèi)和接口組成。通過(guò)使用JDBC,開(kāi)發(fā)人員可以很方便的將SQL語(yǔ)句傳送給幾乎任何一種數據庫,有很好的可移植性。
1 JDBC定義
JDBC是由Java編程語(yǔ)言編寫(xiě)的類(lèi)及接口組成,同時(shí)它也為程序開(kāi)發(fā)人員提供了一組用于實(shí)現對數據庫訪(fǎng)問(wèn)的JDBC API,并支持SQL語(yǔ)言。利用JDBC可以將Java代碼連接到Oracle、DB2、SQL Server、My SQL等數據庫,從而實(shí)現對數據庫中的數據進(jìn)行操作的目的。
JDBC類(lèi)似與Microsoft的ODBC,但兩者有很大的區別,JDBC是Java操作數據庫的方法,有Sun公司提供;ODBC是有微軟公司提供的數據庫操作的方法。也可以說(shuō)JDBC是連接數據庫的一套標準。ODBC不適合直接在Java中使用,因為它使用C語(yǔ)言接口。
2 JDBC與Java結合的優(yōu)點(diǎn)
JDBC與Java結合,再一次驗證了Java那句話(huà)“一次編寫(xiě),到處運行”。它使程序員可以只寫(xiě)一次數據庫程序后,就可以在各種數據庫系統上運行。通過(guò)使用JDBC,程序員可以很方便地將SQL語(yǔ)句傳給任何一種數據庫。也就是說(shuō),程序員不需要寫(xiě)多個(gè)程序分別對應不同的數據庫,用JDBC編寫(xiě)的程序能自動(dòng)將SQL語(yǔ)句傳給相應的數據庫管理系統(DBMS)
Java具有堅固、安全、易于使用和易于理解等特性,是編寫(xiě)數據庫應用程序的杰出語(yǔ)言。所需要的只是Java應用程序與各種不同數據庫之間進(jìn)行對話(huà)的方法,JDBC提供了這種方法?梢哉f(shuō)JDBC擴展了Java的功能。
3 JDBC工作原理
JDBC作為Java Enterprise API的一部分于1996年5月由JavaSoft公司推出,它為Java程序員在Java代碼中訪(fǎng)問(wèn)關(guān)系數據庫提供了標準API。這個(gè)標準API提供了編寫(xiě)標準和考慮所有不同應用程序設計的標準.其奧秘是一組由驅動(dòng)程序實(shí)現的Java接口。驅動(dòng)程序負責標準JDBC調用向支持的數據庫所要的具體調用轉變。這樣應用程序編寫(xiě)一次就能移植到各種驅動(dòng)程序上,應用程序不變,驅動(dòng)程序則各不相同。驅動(dòng)程序可以用于開(kāi)發(fā)多層數據庫設計的中間層,也稱(chēng)中間件。
4 JDBC數據庫連接中存在的問(wèn)題及解決方案分析
JDBC的連接過(guò)程是JDBC達到正常運行的最困難部分。常遇到的問(wèn)題有:
4.1 Class Not Found Exception異常 如果出現“Exception in thread main java.lang.ClassNotFoundException”異常,這表示找不到數據庫的JDBC驅動(dòng)程序,可能的原因:一是沒(méi)有為SQL Sever安裝JDB 驅動(dòng)程序,或者Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”)代碼拼寫(xiě)有誤。
解決方案如下:
step1:判斷是否已經(jīng)安裝JDBC驅動(dòng)程序,若沒(méi)有安裝,則從網(wǎng)上下載并安裝,安裝后的目錄一般為C:\Program File\Microsoft SQL Server 2000 Driver For JDBC\Lib,該目錄下有三個(gè).jar文件:msbase.jar、mssqlserver.jar、msutil.jar,所需的類(lèi)都在這三個(gè)文件中。
step2:動(dòng)態(tài)指定classpath。將以上三個(gè)文件的路勁加入classpath之中:Classpath=.;C:\Program File\Microsoft SQL Server 2000 Driver For JDBC\Lib\msbase.jar;C:\Program File\Microsoft SQL Server2000 Driver For JDBC\Lib t msutil.jar;C:\Program File\Microsoft SQL Server 2000 Driver For JDBC\Lib\mssqlserver.jar。注意,字符串“.;”必不可少,否則會(huì )出現異常:“Exception in thread main java.1ang.NoClassDefFoundError”。
Step3:加載SQL Server的驅動(dòng)程序,就是在Class的forName方法中,引用SQL Server驅動(dòng)程序的主要類(lèi),SQL Server驅動(dòng)程序的主要類(lèi)是COB.microsoft.jdbc.sqlserver.SQLServerDriver,這個(gè)類(lèi)包含在mssqlserver.jar文件中,代碼如下:Class.forName(“COB.microsoft.jdbc.sqlserver.SQLServerDriver”)
4.2 No suitable driver異常 出現“No suitable driver”異常的原因可能是SQL Server 2000 Driver For JDBC\Lib目錄下的三個(gè).jar文件:msbase.jar、mssqlserver.jar、msutil.jar未加入到ClassPath中,或者加入到項目的Required Library中。
解決方案:檢查上面的step 2中的操作是否正確:路徑是否指定正確,文件名是否正確等。
4.3 Error establishing socket異常 出現“Error establishing socket”異常的原因,這是1433端口問(wèn)題,因為在Windows XP SP2及以上版本的Windows操作系統中,防火墻默認的是關(guān)閉這個(gè)端口的。需要為SQL Server打上補丁程序以打開(kāi)1433端口。
解決方案如下。
Step1:版本的檢查SQL Server的補丁版本檢查不如Windows補丁版本檢查直接,一個(gè)系統管理員,如果不了解SQLServer版本對應的補丁號,可能也會(huì )遇到一點(diǎn)麻煩,在這里說(shuō)明一下,通過(guò)這些辦法判別機器是否安全的辦法,不會(huì )對系統產(chǎn)生任何影響。
Step2:1433端口的檢查。
在命令行窗口中輸入命令:netstat—an。檢查1433端口是否被打開(kāi)偵聽(tīng)。
5 總結
開(kāi)發(fā)需要將數據持久性保存到關(guān)系數據庫管理系統的應用程序是IT行業(yè)持續增長(cháng)的一個(gè)需要。使用JDBC技術(shù),利用JDBC API提供的各種不同特性,有利于用戶(hù)選擇最佳特性來(lái)滿(mǎn)足自己特定的應用程序體系結構。
本文主要針對目前在Web應用程序開(kāi)發(fā)中使用JDBC技術(shù)解決數據庫訪(fǎng)問(wèn)時(shí),提出了解決性能問(wèn)題的若干方法,并對這些方法的提升Web數據庫性能的原理進(jìn)行了分析,最后提出了對關(guān)系數據模型優(yōu)化方法,這些技術(shù)方法在開(kāi)發(fā)中都得到了驗證,能夠提升Web應用程序在服務(wù)上的性能。
參考文獻:
[1]蕭仁惠,陳錦輝編著(zhù).JDBC數據庫程序設計[M].北京:中國鐵道出版社.2004.2.
[2]林勝利,王坤茹,孟海利編著(zhù).Java優(yōu)化編程[M].北京:電子工業(yè)出版社.2005.5.
[3]張曉東等編著(zhù).Java數據庫高級教程[M].北京:清華大學(xué)出版社.2004.
[4]龐永慶,翟鵬編著(zhù).Java完全自學(xué)寶典[M].北京:清華大學(xué)出版社.2008.7.
[5]沈文炎,劉瓊,王衛東等譯.Java高級編程:JDK 5[M].北京:機械工業(yè)出版社.2006.6.
【JDBC數據庫編程的研究】相關(guān)文章:
基于Mschart的數據庫圖表應用編程03-18
非Access數據庫在VB中的編程及應用03-18
VB與MATLAB混合編程在流量標定系統數據庫中的應用03-07
關(guān)于數據庫安全維護管理問(wèn)題研究03-05
.NET技術(shù)的數據庫技術(shù)與應用研究11-14
探索結對編程03-04