版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年度农村道路照明设施建设合同
- 专利材料采购合同
- 购销合同有效期内的合同履行方式
- 批发钢筋购买协议
- 藏戏课件教学课件
- 正畸基础知识
- 初中九年级全套体育教案
- 2023年安徽蚌埠市(市区)外地返蚌考生中考报名的公告新
- 三角函数的图像与性质课件
- 外科护理学第七章 手术前后病人的护理
- 面部常见色素性疾病学习-美容皮肤课件
- 129运动主题班会
- YS/T 820.2-2012红土镍矿化学分析方法第2部分:镍量的测定丁二酮肟分光光度法
- 巩固脱贫攻坚成果同乡村振兴有效衔接工作自评报告
- GB 8939-1999卫生巾(含卫生护垫)
- 配电居配工程施工组织设计
评论
0/150
提交评论