




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第16章 Oracle JDBC銜接池和緩存 .本章簡介JDBC銜接池不為每個懇求創建一個新銜接,而是預先創建一個數據庫銜接,每當JDBC程序需求暫時訪問數據庫時就運用這個銜接。創建一個銜接緩存Connection Cache間接地運用銜接池,銜接緩存在創建一個銜接池后,可以在需求時向銜接池自動添加銜接。本章經過例如,引見JDBC銜接池以及銜接緩沖的實現方式。 .16.1 Oracle JDBC銜接池和緩存包 接口名稱接口描述DataSourceDataSource對象是Connection對象的工廠OracleDataSourceDataSource類的Oracle版本ConnectionP
2、oolDataSourceConnectionPoolDataSource對象是PooledConnection對象的工廠PooledConnectionPooledConnection對象是為連接池管理提供關聯的連接對象.16.2 實現Oracle JDBC銜接池 1創建一個銜接池數據源對象。2運用這個銜接池數據源對象設置物理數據庫銜接的屬性。3創建一個緩沖的銜接對象,它代表物理數據庫銜接。4懇求、運用和最終封鎖銜接實例。運用銜接實例訪問數據庫。需求再次訪問數據庫時,只需懇求另一個銜接實例。5封鎖銜接池的銜接對象。.16.2.1 創建一個銜接池數據源對象 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監聽器等待這個端口上的數據庫連接請求。默認值為1521intserverName數據庫服務器的機器名Stringuser數據庫用戶名String.表16.3 OracleDataSource屬性 屬性名稱屬性描述屬性類型driverType要使用的JDBC驅動程序。如果使用服務器端內部驅動程序,那么可設置為“kprb”,而且該屬性的其他設置被忽略Stringurl用于指定Oracle數據庫的urlStringtnsEntr
5、yName 用于指定Oracle Net TNSNAMES字符串,在使用OCI驅動程序時也可以用于指定數據庫位置String.例如:OracleDataSource myDataSource = new OracleDataSource( ); / 創建Oracle數據源對象setServerName( ) 設置正在運轉該數據庫的效力器稱號setDatabaseName( ) 設置數據庫名setPortNumber( ) 設置Oracle Net監聽器在哪個端口上等待懇求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 創建一個緩沖的銜接對象 緩沖的銜接對象代表物理銜接,可以運用它懇求數據庫銜接實例。javax.sql包中定義的OraclePooledConnection類實現了PooledConnection接口,所以可以運用這個類來創建緩沖的銜接對象。例如,下面的語句: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銜接緩存 銜接緩存的主要優
9、點如下:1可以運用一個銜接緩存同時建立多個物理數據庫銜接,然后運用銜接實例訪問這些物理銜接。2創建和管理表示一切物理銜接所需的各個緩沖的銜接對象不需求開發人員來處置。默許情況下,在需求銜接的時候銜接緩存會動態創建緩沖的銜接對象。 .16.3.1 創建銜接緩存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 這是默許的方式,通常應該運用這種方式。在懇求銜接實例時,假設滿足這兩個條件,那么將創建一個新的PooledConnection對象來滿足這個懇求。當銜接實例被封鎖時,為處置懇求而創建的額外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. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 主-肺動脈隔缺損的臨床護理
- 浙江省衢州市五校聯盟2024-2025學年高二下學期期中聯考技術試題(含答案)
- 帛琉旅游住宿太平洋度假村風景秀麗
- 網上研修學習心得體會模版
- 建筑材料與人居環境
- 安保試用期總結轉正工作總結模版
- 造口病人自我護理
- 高二英語下學期期末總結模版
- 肺炎疫苗接種后高燒護理常規
- 發力新質生產力賽道
- 廉潔課件教學課件
- 幼兒園管理 試題及答案
- 江蘇省南京市、鹽城市2025屆高三年級5月第二次模擬考試英語試題及答案(南京鹽城二模)
- 《公共資源交易法規概要》課件
- 2025年4月版安全環境職業健康法律法規標準文件清單
- 2025年美容師初級技能水平測試卷:秋季美容院服務禮儀試題
- 2025甘肅省農墾集團有限責任公司招聘生產技術人員145人筆試參考題庫附帶答案詳解
- 滴滴代理合同協議
- 浙江省金華市2025屆六年級下學期5月模擬預測數學試題含解析
- 廣西《短時強降水強度評估方法》
- 2025年隨州國有資本投資運營集團有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論