資源描述:
《jsp中用jdbc訪問數(shù)據(jù)庫》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、學(xué)習(xí)內(nèi)容:了解JDBC數(shù)據(jù)庫訪問技術(shù)和JDBC的常用接口掌握J(rèn)DBC數(shù)據(jù)庫驅(qū)動程序的獲取和安裝掌握使用JDBC訪問數(shù)據(jù)庫的方法掌握J(rèn)SP、Servlet、JavaBean中數(shù)據(jù)庫的連接和操作理解連接池和數(shù)據(jù)源的概念掌握連接池典型編程方法第7單元用JDBC訪問數(shù)據(jù)庫JDBC概述用JDBC訪問數(shù)據(jù)庫DAO與數(shù)據(jù)庫連接池什么是JDBCJDBC是Java數(shù)據(jù)庫連接(JavaDataBaseConnectivity)技術(shù)的簡稱,由一組用Java語言編寫的類和接口組成。JDBC是一組獨立于特定數(shù)據(jù)庫管理系統(tǒng)的、通用的SQL數(shù)據(jù)庫
2、存取和操作的公共接口(在java.sql和javax.sql包中)。JDBCTM本身是個商標(biāo)名而不是一個縮寫字;JDBC由JavaSoft公司(Sun公司負(fù)責(zé)開發(fā)Java產(chǎn)品的業(yè)務(wù)單位)同數(shù)據(jù)庫及數(shù)據(jù)庫工具廠家一起建立的獨立于DBMS的機(jī)制;JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標(biāo)準(zhǔn)的API,使他們能夠用純JavaAPI來編寫數(shù)據(jù)庫應(yīng)用程序。JDBC的設(shè)計目標(biāo):JDBC是一種規(guī)范,最主要的設(shè)計目的是讓各個數(shù)據(jù)庫開發(fā)商為Java程序員提供標(biāo)準(zhǔn)的數(shù)據(jù)庫訪問的類和接口;不必在不同的系統(tǒng)平臺下編寫不同的數(shù)據(jù)庫應(yīng)用程序。對不
3、同DBMS管理的數(shù)據(jù)進(jìn)行一致的操作,而不必關(guān)心其存儲格式;可以使用Java語言來編寫完整的數(shù)據(jù)庫方面的應(yīng)用程序。JDBC的優(yōu)缺點JDBC的優(yōu)點:可移植性強(qiáng):JDBC支持多種關(guān)系型數(shù)據(jù)庫,只需用JDBCAPI編寫一個程序即可訪問不同的數(shù)據(jù)庫;JDBC使程序員不關(guān)注驅(qū)動程序的編寫,完全專著業(yè)務(wù)邏輯的開發(fā)??梢杂肑DBC-ODBC橋驅(qū)動器將JDBC函數(shù)調(diào)用轉(zhuǎn)換為ODBC;JDBC接口是面向?qū)ο蟮?開發(fā)人員可以將常用的方法進(jìn)行二次封裝,從而提高代碼的重用性。JDBC缺點:通過JDBC訪問數(shù)據(jù)庫時,實際的操作速度會降低。雖然J
4、DBC編程接口是面向?qū)ο蟮?,但通過JDBC訪問數(shù)據(jù)庫仍然是面向關(guān)系的。JDBC提供了對不同廠家的數(shù)據(jù)庫產(chǎn)品的支持,這樣對數(shù)據(jù)源的操作有所影響。與ODBC相比,JDBC沒有定制的"數(shù)據(jù)源"的概念,而是直接在應(yīng)用程序中加載驅(qū)動程序并連接特定的數(shù)據(jù)庫。ODBC體系結(jié)構(gòu)ODBC(開放數(shù)據(jù)庫互連):微軟為實現(xiàn)異構(gòu)數(shù)據(jù)庫互連而推出的一種標(biāo)準(zhǔn),它是一個單一的、公共的編程接口。ODBC的體系結(jié)構(gòu)含有四個部件:應(yīng)用程序Application:執(zhí)行ODBC函數(shù)調(diào)用和處理,提交SQL語句并檢索結(jié)果。驅(qū)動程序管理器DriverManager
5、:為應(yīng)用程序裝載驅(qū)動程序。驅(qū)動程序Driver接口:實現(xiàn)ODBC函數(shù)調(diào)用和同數(shù)據(jù)源交互作用的動態(tài)連接庫,執(zhí)行ODBC函數(shù)調(diào)用提交SQL請求到指定的數(shù)據(jù)源,并把結(jié)果返回給應(yīng)用程序。需要時,驅(qū)動程序也可改變應(yīng)用程序請求,以和特定DBMS的語法匹配。數(shù)據(jù)源DataSource:由需要交互的數(shù)據(jù)和與之相連的OS、DBMS及存取DBMS的網(wǎng)絡(luò)平臺組成。JDBC體系結(jié)構(gòu)JDBC接口(API)也包括兩個層次(與ODBC相類似):面向應(yīng)用的API(JavaAPI抽象接口):供應(yīng)用程序開發(fā)人員使用包括:連接數(shù)據(jù)庫、執(zhí)行SQL語句、獲得
6、結(jié)果面向數(shù)據(jù)庫的API(javaDriverAPI):供數(shù)據(jù)庫廠商實現(xiàn)相應(yīng)的數(shù)據(jù)庫驅(qū)動程序(驅(qū)動程序是實現(xiàn)了java.sql.Driver接口的類)。加載某個數(shù)據(jù)庫驅(qū)動程序類時,將創(chuàng)建相應(yīng)的實例并向java.sql.DriverManage類注冊該對象。其執(zhí)行過程如下:JDBC驅(qū)動程序的類型JavaSoft定義了四種JDBC驅(qū)動程序的基本類型。建議使用:JDBC-ODBC橋驅(qū)動程序,數(shù)據(jù)庫協(xié)議驅(qū)動程序;不建議使用:網(wǎng)絡(luò)協(xié)議驅(qū)動程序,本地Java驅(qū)動程序。數(shù)據(jù)庫協(xié)議驅(qū)動程序:驅(qū)動程序用于與數(shù)據(jù)庫客戶端API進(jìn)行通信(代
7、替JDBC-ODBC橋)性能會比橋略好,是一種低成本數(shù)據(jù)庫解決方案,許多廠商將該類驅(qū)動程序捆綁在其產(chǎn)品中。JDBC-ODBC橋驅(qū)動程序:將JDBC翻譯成ODBC后,再用ODBC驅(qū)動程序與數(shù)據(jù)庫通信。僅用于:有ODBC驅(qū)動程序但沒有提供JDBC驅(qū)動程序的數(shù)據(jù)庫系統(tǒng);或已使用ODBC的低成本數(shù)據(jù)庫解決方案。純Java類庫的驅(qū)動程序網(wǎng)絡(luò)協(xié)議驅(qū)動程序:將JDBC命令轉(zhuǎn)換為與數(shù)據(jù)庫系統(tǒng)無關(guān)的網(wǎng)絡(luò)協(xié)議,并發(fā)送給一個中間件服務(wù)器。中間件服務(wù)器再將該網(wǎng)絡(luò)協(xié)議,轉(zhuǎn)換為特定數(shù)據(jù)庫系統(tǒng)的協(xié)議,并發(fā)送給數(shù)據(jù)庫系統(tǒng)。從數(shù)據(jù)庫系統(tǒng)獲得的結(jié)果,先
8、發(fā)送給中間件服務(wù)器,并進(jìn)而返回給應(yīng)用程序。本地Java驅(qū)動程序:純Java的驅(qū)動程序,直接與特定的數(shù)據(jù)庫系統(tǒng)通信;即驅(qū)動程序?qū)DBC請求直接翻譯成特定DBMS協(xié)議。優(yōu)點:沒有中間的轉(zhuǎn)換或者是中間件。通常用于提高數(shù)據(jù)庫訪問的性能。JDBC的主要功能JDBCAPI多集中在java.sql包中,按功能可分為6類:管理連接數(shù)據(jù)源:DriverMana