JDBC數(shù)據(jù)庫編程的詮釋
時間:2022-04-28 03:22:00
導(dǎo)語:JDBC數(shù)據(jù)庫編程的詮釋一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要:在Web應(yīng)用程序設(shè)計中,提升數(shù)據(jù)庫的響應(yīng)性能是改善應(yīng)用性能的關(guān)鍵?;?a href="http://www.yuanjingfilm.com/lunwen/qtlw/jsj/201104/434875.html" target="_blank">jdbc的Web數(shù)據(jù)庫應(yīng)用中,使用JDBC的優(yōu)化技術(shù),改善數(shù)據(jù)模型,可提高Web應(yīng)用程序的響應(yīng)性能。
關(guān)鍵詞:JavaJDBCJDBCAPI數(shù)據(jù)庫優(yōu)化
0引言
目前,Web應(yīng)用程序正在以非??斓乃俣仍谠鲩L,Web應(yīng)用程序不再是簡單顯示信息的網(wǎng)站,而逐漸融合核心的業(yè)務(wù)邏輯,成為IT領(lǐng)域的業(yè)務(wù)處理平臺。Java以其面向?qū)ο蟆⒖缙脚_、安全性、健壯性等優(yōu)秀特性已成為開發(fā)Web應(yīng)用的主要選擇?;贘DBC的結(jié)構(gòu)和應(yīng)用模式JDBC是一種可用于執(zhí)行SQL語句的JavaAPI,由一些Java語言編寫的類和接口組成。通過使用JDBC,開發(fā)人員可以很方便的將SQL語句傳送給幾乎任何一種數(shù)據(jù)庫,有很好的可移植性。
1JDBC定義
JDBC是由Java編程語言編寫的類及接口組成,同時它也為程序開發(fā)人員提供了一組用于實現(xiàn)對數(shù)據(jù)庫訪問的JDBCAPI,并支持SQL語言。利用JDBC可以將Java代碼連接到Oracle、DB2、SQLServer、MySQL等數(shù)據(jù)庫,從而實現(xiàn)對數(shù)據(jù)庫中的數(shù)據(jù)進行操作的目的。
JDBC類似與Microsoft的ODBC,但兩者有很大的區(qū)別,JDBC是Java操作數(shù)據(jù)庫的方法,有Sun公司提供ODBC是有微軟公司提供的數(shù)據(jù)庫操作的方法。也可以說JDBC是連接數(shù)據(jù)庫的一套標(biāo)準(zhǔn)。ODBC不適合直接在Java中使用,因為它使用C語言接口。
2JDBC與Java結(jié)合的優(yōu)點
JDBC與Java結(jié)合,再一次驗證了Java那句話“一次編寫,到處運行”。它使程序員可以只寫一次數(shù)據(jù)庫程序后,就可以在各種數(shù)據(jù)庫系統(tǒng)上運行。通過使用JDBC,程序員可以很方便地將SQL語句傳給任何一種數(shù)據(jù)庫。也就是說,程序員不需要寫多個程序分別對應(yīng)不同的數(shù)據(jù)庫,用JDBC編寫的程序能自動將SQL語句傳給相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)
Java具有堅固、安全、易于使用和易于理解等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進行對話的方法,JDBC提供了這種方法??梢哉fJDBC擴展了Java的功能。
3JDBC工作原理
JDBC作為JavaEnterpriseAPI的一部分于1996年5月由JavaSoft公司推出,它為Java程序員在Java代碼中訪問關(guān)系數(shù)據(jù)庫提供了標(biāo)準(zhǔn)API。這個標(biāo)準(zhǔn)API提供了編寫標(biāo)準(zhǔn)和考慮所有不同應(yīng)用程序設(shè)計的標(biāo)準(zhǔn).其奧秘是一組由驅(qū)動程序?qū)崿F(xiàn)的Java接口。驅(qū)動程序負責(zé)標(biāo)準(zhǔn)JDBC調(diào)用向支持的數(shù)據(jù)庫所要的具體調(diào)用轉(zhuǎn)變。這樣應(yīng)用程序編寫一次就能移植到各種驅(qū)動程序上,應(yīng)用程序不變,驅(qū)動程序則各不相同。驅(qū)動程序可以用于開發(fā)多層數(shù)據(jù)庫設(shè)計的中間層,也稱中間件。
4JDBC數(shù)據(jù)庫連接中存在的問題及解決方案分析
JDBC的連接過程是JDBC達到正常運行的最困難部分。常遇到的問題有:
4.1ClassNotFoundException異常如果出現(xiàn)“Exceptioninthreadmainjava.lang.ClassNotFoundException”異常,這表示找不到數(shù)據(jù)庫的JDBC驅(qū)動程序,可能的原因:一是沒有為SQLSever安裝JDB驅(qū)動程序,或者Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”)代碼拼寫有誤。
解決方案如下:
step1:判斷是否已經(jīng)安裝JDBC驅(qū)動程序,若沒有安裝,則從網(wǎng)上下載并安裝,安裝后的目錄一般為C:\ProgramFile\MicrosoftSQLServer2000DriverForJDBC\Lib,該目錄下有三個.jar文件:msbase.jar、mssqlserver.jar、msutil.jar,所需的類都在這三個文件中。
step2:動態(tài)指定classpath。將以上三個文件的路勁加入classpath之中:Classpath=.C:
\ProgramFile\MicrosoftSQLServer2000DriverForJDBC\Lib\msbase.jarC:
\ProgramFile\MicrosoftSQLServer2000DriverForJDBC\Libtmsutil.jarC:
\ProgramFile\MicrosoftSQLServer2000DriverForJDBC\Lib\mssqlserver.jar。注意,字符串“.”必不可少,否則會出現(xiàn)異常:“Exceptioninthreadmainjava.1ang.NoClassDefFoundError”。
Step3:加載SQLServer的驅(qū)動程序,就是在Class的forName方法中,引用SQLServer驅(qū)動程序的主要類,SQLServer驅(qū)動程序的主要類是COB.microsoft.jdbc.sqlserver.SQLServerDriver,這個類包含在mssqlserver.jar文件中,代碼如下:Class.forName(“COB.microsoft.jdbc.sqlserver.SQLServerDriver”)
4.2Nosuitabledriver異常出現(xiàn)“Nosuitabledriver”異常的原因可能是SQLServer2000DriverForJDBC\Lib目錄下的三個.jar文件:msbase.jar、mssqlserver.jar、msutil.jar未加入到ClassPath中,或者加入到項目的RequiredLibrary中。
解決方案:檢查上面的step2中的操作是否正確:路徑是否指定正確,文件名是否正確等。
4.3Errorestablishingsocket異常出現(xiàn)“Errorestablishingsocket”異常的原因,這是1433端口問題,因為在WindowsXPSP2及以上版本的Windows操作系統(tǒng)中,防火墻默認的是關(guān)閉這個端口的。需要為SQLServer打上補丁程序以打開1433端口。
解決方案如下。
Step1:版本的檢查SQLServer的補丁版本檢查不如Windows補丁版本檢查直接,一個系統(tǒng)管理員,如果不了解SQLServer版本對應(yīng)的補丁號,可能也會遇到一點麻煩,在這里說明一下,通過這些辦法判別機器是否安全的辦法,不會對系統(tǒng)產(chǎn)生任何影響。
Step2:1433端口的檢查。
在命令行窗口中輸入命令:netstat—an。檢查1433端口是否被打開偵聽。
5總結(jié)
開發(fā)需要將數(shù)據(jù)持久性保存到關(guān)系數(shù)據(jù)庫管理系統(tǒng)的應(yīng)用程序是IT行業(yè)持續(xù)增長的一個需要。使用JDBC技術(shù),利用JDBCAPI提供的各種不同特性,有利于用戶選擇最佳特性來滿足自己特定的應(yīng)用程序體系結(jié)構(gòu)。
本文主要針對目前在Web應(yīng)用程序開發(fā)中使用JDBC技術(shù)解決數(shù)據(jù)庫訪問時,提出了解決性能問題的若干方法,并對這些方法的提升Web數(shù)據(jù)庫性能的原理進行了分析,最后提出了對關(guān)系數(shù)據(jù)模型優(yōu)化方法,這些技術(shù)方法在開發(fā)中都得到了驗證,能夠提升Web應(yīng)用程序在服務(wù)上的性能。
參考文獻:
[1]蕭仁惠,陳錦輝編著.JDBC數(shù)據(jù)庫程序設(shè)計[M].北京:中國鐵道出版社.2004.2.
[2]林勝利,王坤茹,孟海利編著.Java優(yōu)化編程[M].北京:電子工業(yè)出版社.2005.5.
[3]張曉東等編著.Java數(shù)據(jù)庫高級教程[M].北京:清華大學(xué)出版社.2004.
[4]龐永慶,翟鵬編著.Java完全自學(xué)寶典[M].北京:清華大學(xué)出版社.2008.7.
[5]沈文炎,劉瓊,王衛(wèi)東等譯.Java高級編程:JDK5[M].北京:機械工業(yè)出版社.2006.6.