版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第16章 Oracle JDBC銜接池和緩存 .本章簡介JDBC銜接池不為每個懇求創(chuàng)建一個新銜接,而是預(yù)先創(chuàng)建一個數(shù)據(jù)庫銜接,每當JDBC程序需求暫時訪問數(shù)據(jù)庫時就運用這個銜接。創(chuàng)建一個銜接緩存Connection Cache間接地運用銜接池,銜接緩存在創(chuàng)建一個銜接池后,可以在需求時向銜接池自動添加銜接。本章經(jīng)過例如,引見JDBC銜接池以及銜接緩沖的實現(xiàn)方式。 .16.1 Oracle JDBC銜接池和緩存包 接口名稱接口描述DataSourceDataSource對象是Connection對象的工廠OracleDataSourceDataSource類的Oracle版本ConnectionP
2、oolDataSourceConnectionPoolDataSource對象是PooledConnection對象的工廠PooledConnectionPooledConnection對象是為連接池管理提供關(guān)聯(lián)的連接對象.16.2 實現(xiàn)Oracle JDBC銜接池 1創(chuàng)建一個銜接池數(shù)據(jù)源對象。2運用這個銜接池數(shù)據(jù)源對象設(shè)置物理數(shù)據(jù)庫銜接的屬性。3創(chuàng)建一個緩沖的銜接對象,它代表物理數(shù)據(jù)庫銜接。4懇求、運用和最終封鎖銜接實例。運用銜接實例訪問數(shù)據(jù)庫。需求再次訪問數(shù)據(jù)庫時,只需懇求另一個銜接實例。5封鎖銜接池的銜接對象。.16.2.1 創(chuàng)建一個銜接池數(shù)據(jù)源對象 OracleConnectionPo
3、olDataSource類實現(xiàn)了javax.sql包中定義的ConnectionPoolDataSource接口,還擴展了OracleDataSource類。 例如,下面的語句:OracleConnectionPoolDataSource myOCPDS = new OracleConnectionPoolDataSource( );.16.2.2 設(shè)置物理數(shù)據(jù)庫銜接的屬性 屬性名稱屬性描述類型databaseName數(shù)據(jù)庫名(Oracle ID)StringdataSourceName數(shù)據(jù)源類的名稱Stringdescription數(shù)據(jù)源的說明StringnetworkProtocol用于與
4、數(shù)據(jù)庫通信的網(wǎng)絡(luò)協(xié)議,只用于Oracle JDBC OCI驅(qū)動程序,默認值為“tcp”Stringportword用戶口令StringportNumberOracle Net監(jiān)聽器等待這個端口上的數(shù)據(jù)庫連接請求。默認值為1521intserverName數(shù)據(jù)庫服務(wù)器的機器名Stringuser數(shù)據(jù)庫用戶名String.表16.3 OracleDataSource屬性 屬性名稱屬性描述屬性類型driverType要使用的JDBC驅(qū)動程序。如果使用服務(wù)器端內(nèi)部驅(qū)動程序,那么可設(shè)置為“kprb”,而且該屬性的其他設(shè)置被忽略Stringurl用于指定Oracle數(shù)據(jù)庫的urlStringtnsEntr
5、yName 用于指定Oracle Net TNSNAMES字符串,在使用OCI驅(qū)動程序時也可以用于指定數(shù)據(jù)庫位置String.例如:OracleDataSource myDataSource = new OracleDataSource( ); / 創(chuàng)建Oracle數(shù)據(jù)源對象setServerName( ) 設(shè)置正在運轉(zhuǎn)該數(shù)據(jù)庫的效力器稱號setDatabaseName( ) 設(shè)置數(shù)據(jù)庫名setPortNumber( ) 設(shè)置Oracle Net監(jiān)聽器在哪個端口上等待懇求setDriverType( ) 設(shè)置用于與數(shù)據(jù)庫進展通訊的Oracle JDBC驅(qū)動程序。setUser( ) 指定在數(shù)據(jù)
6、庫銜接中運用的數(shù)據(jù)庫用戶名setPassword( ) 指定在數(shù)據(jù)庫銜接中運用的數(shù)據(jù)庫口令.例如: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)建一個緩沖的銜接對象 緩沖的銜接對象代表物理銜接,可以運用它懇求數(shù)據(jù)庫銜接實例。javax.sql包中定義的OraclePooledConnection類實現(xiàn)了PooledConnection接口,所以可以運用這個類來創(chuàng)建緩沖的銜接對象。例如,下面的語句:PooledConnection myPoole
8、dConnection = myOCPDS.getPooledConnection( );.16.2.4 懇求、運用和最終封鎖銜接實例 例如,下面的語句:Connection myConnection = myPooledConnection.getConnection( );例如,下面的語句:myConnection.close( ); .16.2.5 封鎖緩沖的銜接對象 在程序終了之前,應(yīng)該運用close( )方法封鎖PooledConnection對象。例如,下面的語句:myPooledConnection.close( ); .16.3 Oracle JDBC銜接緩存 銜接緩存的主要優(yōu)
9、點如下:1可以運用一個銜接緩存同時建立多個物理數(shù)據(jù)庫銜接,然后運用銜接實例訪問這些物理銜接。2創(chuàng)建和管理表示一切物理銜接所需的各個緩沖的銜接對象不需求開發(fā)人員來處置。默許情況下,在需求銜接的時候銜接緩存會動態(tài)創(chuàng)建緩沖的銜接對象。 .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 懇求、運用和封鎖銜接實例 訪問數(shù)據(jù)庫是經(jīng)過一個銜接實例實現(xiàn)的,所以需求運用OracleConnectionCacheImpl對象的getConnection( )方法來懇求一個銜接實例。例如,下面的語句運用getConnection( )方法從myOCCI對象懇求一個銜接實例,并且將前往的銜接實例存儲在my Connection類的對象中。Connection myConnection = myOCCI.getConnection( )
11、; .16.3.3 封鎖銜接緩存 在程序終了之前,應(yīng)該運用close( )方法封鎖OracleConnectionCacheImpl對象。例如,下面的語句:myOCCI.close( );封鎖myOCCI也會封鎖緩存中的一切PooledConnection對象。 .16.3.5 控制PooledConnection對象數(shù)量 有以下3種銜接緩存方式:1dynamic 這是默許的方式,通常應(yīng)該運用這種方式。在懇求銜接實例時,假設(shè)滿足這兩個條件,那么將創(chuàng)建一個新的PooledConnection對象來滿足這個懇求。當銜接實例被封鎖時,為處置懇求而創(chuàng)建的額外PooledConnection對象被封鎖。
12、2fixed wait 在懇求銜接實例時,假設(shè)前面的條件成立,那么懇求被迫等待有銜接實例空閑下來。3fixed with no wait 在懇求銜接實例時,假設(shè)前面的條件成立,那么懇求立刻被回絕不等待呼應(yīng),而且對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ù)據(jù)庫銜接的容
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度投資人醫(yī)療健康合作協(xié)議3篇
- 2025年度影視劇本改編為公益宣傳片制作合同3篇
- 2025年度水利工程金屬結(jié)構(gòu)制作承包勞務(wù)合同范本2篇
- 2025年度太陽能戶外照明工程安裝與維護管理合同
- 教科版信息技術(shù)高一必修 3.2信息的編程加工說課稿001
- 第13課 清朝前中期的鼎盛與危機說課稿-2024-2025學(xué)年高一上學(xué)期統(tǒng)編版(2019)必修中外歷史綱要上
- 2024年藥店技術(shù)與服務(wù)人員合同3篇
- 2024潤滑油銷售合同協(xié)議
- 2024年秘密情報保密合同3篇
- 安徽金榜高三數(shù)學(xué)試卷
- 彈性力學(xué)材料模型:彈塑性材料:彈塑性本構(gòu)關(guān)系技術(shù)教程
- 平山水利樞紐設(shè)計說明書
- 2024年高考英語一模試題分類匯編:概要寫作(上海專用)(解析版)
- 院內(nèi)突發(fā)心跳呼吸驟停、昏迷、跌倒事件應(yīng)急預(yù)案及程序
- 2024年國家開放大學(xué)電大橋梁工程技術(shù)形考任務(wù)一、二、三、四答案
- 2024年全國注冊土木工程師(水利水電)之專業(yè)知識考試歷年考試題(附答案)
- 2024年小區(qū)地下車位租賃合同
- 2024年勞務(wù)用工合同
- 2024年新疆中考數(shù)學(xué)真題試卷及答案
- 2024年陜西省中考語文試卷附答案
- 化學(xué)與人類社會智慧樹知到期末考試答案章節(jié)答案2024年內(nèi)江師范學(xué)院
評論
0/150
提交評論