在Weblogic中實(shí)現(xiàn)JDBC的功能
JDBC API由Java編寫(xiě)的一組接口和類(lèi)組成,為開(kāi)發(fā)者提供通過(guò)應(yīng)用開(kāi)發(fā)訪問(wèn)數(shù)據(jù)庫(kù)的工具/接口。作為低端接口,JDBC需要直接使用SQL命令語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。此外,通過(guò)JMS、EJB以及容器持續(xù)等方式,JDBC可以實(shí)現(xiàn)高層調(diào)用,即不直接通過(guò)SQL操作數(shù)據(jù)庫(kù)。
BEA提供兩種JDBC連接方式,即兩層方式和多次驅(qū)動(dòng)方式。所謂兩層方式即Java應(yīng)用客戶(hù)端直接訪問(wèn)數(shù)據(jù)庫(kù),多層則通過(guò)jdbcpool、rmi-driver或者JTS實(shí)現(xiàn)。
兩層:jdriver for oracle、infomix、mssql
多層:jdbcpool、rmi-dirver、JTS
關(guān)于數(shù)據(jù)庫(kù)連接池(dbpool)
多層驅(qū)動(dòng)(多層 drivers)中,weblogic提供的dbpool是利用、調(diào)度和管理一組與數(shù)據(jù)庫(kù)創(chuàng)建的數(shù)據(jù)庫(kù)連接。 其中,weblogic采用兩層驅(qū)動(dòng)方式與數(shù)據(jù)庫(kù)建立連接并對(duì)連接組進(jìn)行運(yùn)行管理。
在服務(wù)器端使用連接緩沖池
對(duì)于訪問(wèn)數(shù)據(jù)庫(kù)的服務(wù)器端應(yīng)用,如servlet可以使用weblogic提供的連接緩沖池驅(qū)動(dòng)。而兩階段提交交易則需要使用weblogic服務(wù)器提供的JDBC/XA驅(qū)動(dòng),如Jdriver for oracle。如果交易是分布式的,則使用JTS驅(qū)動(dòng)。此外,可以使用JNDI和數(shù)據(jù)源對(duì)象來(lái)訪問(wèn)和使用數(shù)據(jù)庫(kù)連接緩沖池。
客戶(hù)端應(yīng)用使用連接緩沖池
BEA 為客戶(hù)端應(yīng)用提供了多層JDBC RMI驅(qū)動(dòng),RMI驅(qū)動(dòng)遵循SUN公司J2EE規(guī)范。WebLogic RMI驅(qū)動(dòng)是3類(lèi)驅(qū)動(dòng),通過(guò)RMI和DataSourc對(duì)象實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的連接。此外這種驅(qū)動(dòng)還支持cluster中使用JDBC,在負(fù)載平衡、錯(cuò)誤恢復(fù)等方面起重要作用。通過(guò)對(duì)數(shù)據(jù)源對(duì)象的設(shè)置,可以定義驅(qū)動(dòng)是否支持交易(transactional)。
多連接池(MultiPool)
用于單服務(wù)配置,JDBC多連接池(Multipools)提供了備份連接池以及通過(guò)負(fù)載均衡增強(qiáng)數(shù)據(jù)庫(kù)連接性能。MultiPools運(yùn)行配置、維護(hù)和監(jiān)控一組連接池, 在多服務(wù)器中不支持使用。
選擇MultiPool的算法
可以選擇下列方式對(duì)MultiPool 進(jìn)行配置:
◆緩沖池備份,對(duì)連接池順序標(biāo)號(hào)執(zhí)行;
◆負(fù)載均衡,基于輪詢(xún)(round-robin )算法。
集群中使用JDBC
只嚇多層數(shù)據(jù)庫(kù) 配置相關(guān),clustered JDBC 運(yùn)行外部JDBC 客戶(hù)端在不改變參數(shù)的情況下重新做jdbc連接或者重啟jdbc連接。在某個(gè)集群成員服務(wù)崩潰的情況下,clustered JDBC通過(guò)數(shù)據(jù)源對(duì)象和weblogic RMI驅(qū)動(dòng)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的連接。其中數(shù)據(jù)源在weblogic管理平臺(tái)(console)上進(jìn)行配置。
關(guān)于數(shù)據(jù)源
數(shù)據(jù)源對(duì)象向JDBC客戶(hù)端提供獲取DBMS連接的路徑,是數(shù)據(jù)庫(kù)連接緩沖池和客戶(hù)端編程之間的接口。每個(gè)數(shù)據(jù)源和一個(gè)***的數(shù)據(jù)源對(duì)象對(duì)應(yīng),該數(shù)據(jù)源對(duì)象類(lèi)實(shí)現(xiàn)對(duì)連接緩沖池或分布式交易的支持。
JDBC API
Weblogic遵循sun公司JDBC標(biāo)志,基于weblogic開(kāi)發(fā)JDBC應(yīng)用使用標(biāo)志接口Java.sql接口包。它運(yùn)行對(duì)數(shù)據(jù)庫(kù)創(chuàng)建連接、處理結(jié)果集、發(fā)送SLQ語(yǔ)句等編程操作。
WebLogic JDBC 類(lèi)定義
下表是在weblogic中常用的JDBC類(lèi),更詳細(xì)的描述可參加sun公司Java.sql包和weblogic.jdbc包Java文檔。
JDBC類(lèi)描述
Driver每個(gè)驅(qū)動(dòng)程序包都必須提供,用于創(chuàng)建driver和database之間的連接,并提供數(shù)據(jù)庫(kù)連接相關(guān)信息。
DataSource描述DBMS或其它數(shù)據(jù)源細(xì)節(jié),用于和數(shù)據(jù)源創(chuàng)建連接。
Statement向數(shù)據(jù)庫(kù)系統(tǒng)發(fā)送簡(jiǎn)單的SQL語(yǔ)句。
PreparedStatement繼承Statement,用于執(zhí)行pre-compiled SQL 語(yǔ)句。
CallableStatement繼承PreparedStatement,用于對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程進(jìn)行調(diào)用(可帶參數(shù))。
ResultSet結(jié)果集,包含SQL查詢(xún)語(yǔ)句執(zhí)行結(jié)果,提供結(jié)果查詢(xún)方法。
ResultSetMetaData體統(tǒng)結(jié)果集中行列對(duì)象的類(lèi)型、屬性等信息。
DataBaseMetaData提供數(shù)據(jù)庫(kù)系統(tǒng)整體信息,返回單值或結(jié)果集。
Clobsbuilt-in 類(lèi)型, 在行中存儲(chǔ)列字符型大對(duì)象。
Blobsbuilt-in 類(lèi)型,在數(shù)據(jù)庫(kù)表中存儲(chǔ)列二進(jìn)制大對(duì)象。
【編輯推薦】