版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第16章 Oracle JDBC銜接池和緩存 .本章簡介JDBC銜接池不為每個懇求創(chuàng)建一個新銜接,而是預先創(chuàng)建一個數據庫銜接,每當JDBC程序需求暫時訪問數據庫時就運用這個銜接。創(chuàng)建一個銜接緩存Connection Cache間接地運用銜接池,銜接緩存在創(chuàng)建一個銜接池后,可以在需求時向銜接池自動添加銜接。本章經過例如,引見JDBC銜接池以及銜接緩沖的實現方式。 .16.1 Oracle JDBC銜接池和緩存包 接口名稱接口描述DataSourceDataSource對象是Connection對象的工廠OracleDataSourceDataSource類的Oracle版本ConnectionP
2、oolDataSourceConnectionPoolDataSource對象是PooledConnection對象的工廠PooledConnectionPooledConnection對象是為連接池管理提供關聯的連接對象.16.2 實現Oracle JDBC銜接池 1創(chuàng)建一個銜接池數據源對象。2運用這個銜接池數據源對象設置物理數據庫銜接的屬性。3創(chuàng)建一個緩沖的銜接對象,它代表物理數據庫銜接。4懇求、運用和最終封鎖銜接實例。運用銜接實例訪問數據庫。需求再次訪問數據庫時,只需懇求另一個銜接實例。5封鎖銜接池的銜接對象。.16.2.1 創(chuàng)建一個銜接池數據源對象 OracleConnectionPo
3、olDataSource類實現了javax.sql包中定義的ConnectionPoolDataSource接口,還擴展了OracleDataSource類。 例如,下面的語句:OracleConnectionPoolDataSource myOCPDS = new OracleConnectionPoolDataSource( );.16.2.2 設置物理數據庫銜接的屬性 屬性名稱屬性描述類型databaseName數據庫名(Oracle ID)StringdataSourceName數據源類的名稱Stringdescription數據源的說明StringnetworkProtocol用于與
4、數據庫通信的網絡協議,只用于Oracle JDBC OCI驅動程序,默認值為“tcp”Stringportword用戶口令StringportNumberOracle Net監(jiān)聽器等待這個端口上的數據庫連接請求。默認值為1521intserverName數據庫服務器的機器名Stringuser數據庫用戶名String.表16.3 OracleDataSource屬性 屬性名稱屬性描述屬性類型driverType要使用的JDBC驅動程序。如果使用服務器端內部驅動程序,那么可設置為“kprb”,而且該屬性的其他設置被忽略Stringurl用于指定Oracle數據庫的urlStringtnsEntr
5、yName 用于指定Oracle Net TNSNAMES字符串,在使用OCI驅動程序時也可以用于指定數據庫位置String.例如:OracleDataSource myDataSource = new OracleDataSource( ); / 創(chuàng)建Oracle數據源對象setServerName( ) 設置正在運轉該數據庫的效力器稱號setDatabaseName( ) 設置數據庫名setPortNumber( ) 設置Oracle Net監(jiān)聽器在哪個端口上等待懇求setDriverType( ) 設置用于與數據庫進展通訊的Oracle JDBC驅動程序。setUser( ) 指定在數據
6、庫銜接中運用的數據庫用戶名setPassword( ) 指定在數據庫銜接中運用的數據庫口令.例如: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)建一個緩沖的銜接對象 緩沖的銜接對象代表物理銜接,可以運用它懇求數據庫銜接實例。javax.sql包中定義的OraclePooledConnection類實現了PooledConnection接口,所以可以運用這個類來創(chuàng)建緩沖的銜接對象。例如,下面的語句:PooledConnection myPoole
8、dConnection = myOCPDS.getPooledConnection( );.16.2.4 懇求、運用和最終封鎖銜接實例 例如,下面的語句:Connection myConnection = myPooledConnection.getConnection( );例如,下面的語句:myConnection.close( ); .16.2.5 封鎖緩沖的銜接對象 在程序終了之前,應該運用close( )方法封鎖PooledConnection對象。例如,下面的語句:myPooledConnection.close( ); .16.3 Oracle JDBC銜接緩存 銜接緩存的主要優(yōu)
9、點如下:1可以運用一個銜接緩存同時建立多個物理數據庫銜接,然后運用銜接實例訪問這些物理銜接。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 懇求、運用和封鎖銜接實例 訪問數據庫是經過一個銜接實例實現的,所以需求運用OracleConnectionCacheImpl對象的getConnection( )方法來懇求一個銜接實例。例如,下面的語句運用getConnection( )方法從myOCCI對象懇求一個銜接實例,并且將前往的銜接實例存儲在my Connection類的對象中。Connection myConnection = myOCCI.getConnection( )
11、; .16.3.3 封鎖銜接緩存 在程序終了之前,應該運用close( )方法封鎖OracleConnectionCacheImpl對象。例如,下面的語句:myOCCI.close( );封鎖myOCCI也會封鎖緩存中的一切PooledConnection對象。 .16.3.5 控制PooledConnection對象數量 有以下3種銜接緩存方式:1dynamic 這是默許的方式,通常應該運用這種方式。在懇求銜接實例時,假設滿足這兩個條件,那么將創(chuàng)建一個新的PooledConnection對象來滿足這個懇求。當銜接實例被封鎖時,為處置懇求而創(chuàng)建的額外PooledConnection對象被封鎖。
12、2fixed wait 在懇求銜接實例時,假設前面的條件成立,那么懇求被迫等待有銜接實例空閑下來。3fixed with no wait 在懇求銜接實例時,假設前面的條件成立,那么懇求立刻被回絕不等待呼應,而且對getConnection( )方法的調用前往null。 .例如:myOCCI.setCacheScheme(OracleConnectionCacheImpl.DYNAMIC_SCHEME);myOCCI.setCacheScheme(OracleConnectionCacheImpl.FIXED_WAIT_SCHEME);myOCCI.setCacheScheme(OracleConnectionCacheImpl.FIX_RETURN_NULL_SCHEME);.16.4 本章小結 Oracle JDBC銜接池實踐上就是一個存儲數據庫銜接的容
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 乳制品公司職工食堂租賃條款
- 商業(yè)綜合體造價員招聘合同
- 林業(yè)科技HSE管理協議
- 服裝租賃解除協議書
- 文化中心靜壓樁施工承包合同
- 環(huán)保項目土地租賃合同
- 航空特種車輛機坪作業(yè)協調
- 航空航天技術合作簽約管理辦法
- 2024年房地產銷售擔保合同范本及開發(fā)商責任約定書3篇
- 2025版空調銷售與智能安裝升級合同3篇
- 選礦年度工作總結報告
- 彈性力學材料模型:彈塑性材料:彈塑性本構關系技術教程
- 2024至2030年阜陽市醫(yī)養(yǎng)結合模式調查及市場投融可行性報告
- 2023-2024學年部編版語文四年級上冊期末測試卷(附答案解析)
- 2024年高考英語一模試題分類匯編:概要寫作(上海專用)(解析版)
- 院內突發(fā)心跳呼吸驟停、昏迷、跌倒事件應急預案及程序
- 2023年山東省濟南市章丘市棗園街道社區(qū)工作者招聘筆試題及答案
- 人教版道德與法治六年級上冊全冊單元測試卷課件
- 2024年全國注冊土木工程師(水利水電)之專業(yè)知識考試歷年考試題(附答案)
- 2024年勞務用工合同
- 2024年新疆中考數學真題試卷及答案
評論
0/150
提交評論