第16章 Oracle JDBC連接池和緩存 161 Oracle JDBC連接池和緩存包ppt課件_第1頁(yè)
第16章 Oracle JDBC連接池和緩存 161 Oracle JDBC連接池和緩存包ppt課件_第2頁(yè)
第16章 Oracle JDBC連接池和緩存 161 Oracle JDBC連接池和緩存包ppt課件_第3頁(yè)
第16章 Oracle JDBC連接池和緩存 161 Oracle JDBC連接池和緩存包ppt課件_第4頁(yè)
第16章 Oracle JDBC連接池和緩存 161 Oracle JDBC連接池和緩存包ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第16章 Oracle JDBC銜接池和緩存 .本章簡(jiǎn)介JDBC銜接池不為每個(gè)懇求創(chuàng)建一個(gè)新銜接,而是預(yù)先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)銜接,每當(dāng)JDBC程序需求暫時(shí)訪問(wèn)數(shù)據(jù)庫(kù)時(shí)就運(yùn)用這個(gè)銜接。創(chuàng)建一個(gè)銜接緩存Connection Cache間接地運(yùn)用銜接池,銜接緩存在創(chuàng)建一個(gè)銜接池后,可以在需求時(shí)向銜接池自動(dòng)添加銜接。本章經(jīng)過(guò)例如,引見(jiàn)JDBC銜接池以及銜接緩沖的實(shí)現(xiàn)方式。 .16.1 Oracle JDBC銜接池和緩存包 接口名稱接口描述DataSourceDataSource對(duì)象是Connection對(duì)象的工廠OracleDataSourceDataSource類的Oracle版本ConnectionP

2、oolDataSourceConnectionPoolDataSource對(duì)象是PooledConnection對(duì)象的工廠PooledConnectionPooledConnection對(duì)象是為連接池管理提供關(guān)聯(lián)的連接對(duì)象.16.2 實(shí)現(xiàn)Oracle JDBC銜接池 1創(chuàng)建一個(gè)銜接池?cái)?shù)據(jù)源對(duì)象。2運(yùn)用這個(gè)銜接池?cái)?shù)據(jù)源對(duì)象設(shè)置物理數(shù)據(jù)庫(kù)銜接的屬性。3創(chuàng)建一個(gè)緩沖的銜接對(duì)象,它代表物理數(shù)據(jù)庫(kù)銜接。4懇求、運(yùn)用和最終封鎖銜接實(shí)例。運(yùn)用銜接實(shí)例訪問(wèn)數(shù)據(jù)庫(kù)。需求再次訪問(wèn)數(shù)據(jù)庫(kù)時(shí),只需懇求另一個(gè)銜接實(shí)例。5封鎖銜接池的銜接對(duì)象。.16.2.1 創(chuàng)建一個(gè)銜接池?cái)?shù)據(jù)源對(duì)象 OracleConnectionPo

3、olDataSource類實(shí)現(xiàn)了javax.sql包中定義的ConnectionPoolDataSource接口,還擴(kuò)展了OracleDataSource類。 例如,下面的語(yǔ)句:OracleConnectionPoolDataSource myOCPDS = new OracleConnectionPoolDataSource( );.16.2.2 設(shè)置物理數(shù)據(jù)庫(kù)銜接的屬性 屬性名稱屬性描述類型databaseName數(shù)據(jù)庫(kù)名(Oracle ID)StringdataSourceName數(shù)據(jù)源類的名稱Stringdescription數(shù)據(jù)源的說(shuō)明StringnetworkProtocol用于與

4、數(shù)據(jù)庫(kù)通信的網(wǎng)絡(luò)協(xié)議,只用于Oracle JDBC OCI驅(qū)動(dòng)程序,默認(rèn)值為“tcp”Stringportword用戶口令StringportNumberOracle Net監(jiān)聽(tīng)器等待這個(gè)端口上的數(shù)據(jù)庫(kù)連接請(qǐng)求。默認(rèn)值為1521intserverName數(shù)據(jù)庫(kù)服務(wù)器的機(jī)器名Stringuser數(shù)據(jù)庫(kù)用戶名String.表16.3 OracleDataSource屬性 屬性名稱屬性描述屬性類型driverType要使用的JDBC驅(qū)動(dòng)程序。如果使用服務(wù)器端內(nèi)部驅(qū)動(dòng)程序,那么可設(shè)置為“kprb”,而且該屬性的其他設(shè)置被忽略Stringurl用于指定Oracle數(shù)據(jù)庫(kù)的urlStringtnsEntr

5、yName 用于指定Oracle Net TNSNAMES字符串,在使用OCI驅(qū)動(dòng)程序時(shí)也可以用于指定數(shù)據(jù)庫(kù)位置String.例如:OracleDataSource myDataSource = new OracleDataSource( ); / 創(chuàng)建Oracle數(shù)據(jù)源對(duì)象setServerName( ) 設(shè)置正在運(yùn)轉(zhuǎn)該數(shù)據(jù)庫(kù)的效力器稱號(hào)setDatabaseName( ) 設(shè)置數(shù)據(jù)庫(kù)名setPortNumber( ) 設(shè)置Oracle Net監(jiān)聽(tīng)器在哪個(gè)端口上等待懇求setDriverType( ) 設(shè)置用于與數(shù)據(jù)庫(kù)進(jìn)展通訊的Oracle JDBC驅(qū)動(dòng)程序。setUser( ) 指定在數(shù)據(jù)

6、庫(kù)銜接中運(yùn)用的數(shù)據(jù)庫(kù)用戶名setPassword( ) 指定在數(shù)據(jù)庫(kù)銜接中運(yùn)用的數(shù)據(jù)庫(kù)口令.例如:String serverName = myDataSource.getServerName( );String databaseName = myDataSource.getDatabaseName( );String driverType = myDataSource.getDriverType( );String portNumber = myDataSource.getPortNumber( );.例如:myOCPDS.setServerName(DELL);myOCPDS .setDat

7、abaseName(SONGBO);myOCPDS.setPortNumber(1521);myOCPDS.setDriverType(thin);myOCPDS.setUser(store_user);myOCPDS.setPassword(store_password); .16.2.3 創(chuàng)建一個(gè)緩沖的銜接對(duì)象 緩沖的銜接對(duì)象代表物理銜接,可以運(yùn)用它懇求數(shù)據(jù)庫(kù)銜接實(shí)例。javax.sql包中定義的OraclePooledConnection類實(shí)現(xiàn)了PooledConnection接口,所以可以運(yùn)用這個(gè)類來(lái)創(chuàng)建緩沖的銜接對(duì)象。例如,下面的語(yǔ)句:PooledConnection myPoole

8、dConnection = myOCPDS.getPooledConnection( );.16.2.4 懇求、運(yùn)用和最終封鎖銜接實(shí)例 例如,下面的語(yǔ)句:Connection myConnection = myPooledConnection.getConnection( );例如,下面的語(yǔ)句:myConnection.close( ); .16.2.5 封鎖緩沖的銜接對(duì)象 在程序終了之前,應(yīng)該運(yùn)用close( )方法封鎖PooledConnection對(duì)象。例如,下面的語(yǔ)句:myPooledConnection.close( ); .16.3 Oracle JDBC銜接緩存 銜接緩存的主要優(yōu)

9、點(diǎn)如下:1可以運(yùn)用一個(gè)銜接緩存同時(shí)建立多個(gè)物理數(shù)據(jù)庫(kù)銜接,然后運(yùn)用銜接實(shí)例訪問(wèn)這些物理銜接。2創(chuàng)建和管理表示一切物理銜接所需的各個(gè)緩沖的銜接對(duì)象不需求開(kāi)發(fā)人員來(lái)處置。默許情況下,在需求銜接的時(shí)候銜接緩存會(huì)動(dòng)態(tài)創(chuàng)建緩沖的銜接對(duì)象。 .16.3.1 創(chuàng)建銜接緩存OracleConnectionCacheImpl myOCCI = new OracleConnectionCacheImpl( );myOCCI.setServerName(DELL);myOCCI.setDatabaseName(SONGBO);myOCCI.setPortNumber(1521);myOCCI.setDriverTy

10、pe(thin);myOCCI.setUser(store_user);myOCCI .setPassword(store_password);.16.3.2 懇求、運(yùn)用和封鎖銜接實(shí)例 訪問(wèn)數(shù)據(jù)庫(kù)是經(jīng)過(guò)一個(gè)銜接實(shí)例實(shí)現(xiàn)的,所以需求運(yùn)用OracleConnectionCacheImpl對(duì)象的getConnection( )方法來(lái)懇求一個(gè)銜接實(shí)例。例如,下面的語(yǔ)句運(yùn)用getConnection( )方法從myOCCI對(duì)象懇求一個(gè)銜接實(shí)例,并且將前往的銜接實(shí)例存儲(chǔ)在my Connection類的對(duì)象中。Connection myConnection = myOCCI.getConnection( )

11、; .16.3.3 封鎖銜接緩存 在程序終了之前,應(yīng)該運(yùn)用close( )方法封鎖OracleConnectionCacheImpl對(duì)象。例如,下面的語(yǔ)句:myOCCI.close( );封鎖myOCCI也會(huì)封鎖緩存中的一切PooledConnection對(duì)象。 .16.3.5 控制PooledConnection對(duì)象數(shù)量 有以下3種銜接緩存方式:1dynamic 這是默許的方式,通常應(yīng)該運(yùn)用這種方式。在懇求銜接實(shí)例時(shí),假設(shè)滿足這兩個(gè)條件,那么將創(chuàng)建一個(gè)新的PooledConnection對(duì)象來(lái)滿足這個(gè)懇求。當(dāng)銜接實(shí)例被封鎖時(shí),為處置懇求而創(chuàng)建的額外PooledConnection對(duì)象被封鎖。

12、2fixed wait 在懇求銜接實(shí)例時(shí),假設(shè)前面的條件成立,那么懇求被迫等待有銜接實(shí)例空閑下來(lái)。3fixed with no wait 在懇求銜接實(shí)例時(shí),假設(shè)前面的條件成立,那么懇求立刻被回絕不等待呼應(yīng),而且對(duì)getConnection( )方法的調(diào)用前往null。 .例如:myOCCI.setCacheScheme(OracleConnectionCacheImpl.DYNAMIC_SCHEME);myOCCI.setCacheScheme(OracleConnectionCacheImpl.FIXED_WAIT_SCHEME);myOCCI.setCacheScheme(OracleConnectionCacheImpl.FIX_RETURN_NULL_SCHEME);.16.4 本章小結(jié) Oracle JDBC銜接池實(shí)踐上就是一個(gè)存儲(chǔ)數(shù)據(jù)庫(kù)銜接的容

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論