JDBC3.0研究报告(节选)[Java编程]
本文“JDBC3.0研究报告(节选)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
数据库衔接池的基本原理
传统的数据库衔接方法(指通过DriverManager和基本实现DataSource举行衔接)中,一个数据库衔接对象均对应一个物理数据库衔接,数据库衔接的成立以及关闭对系统而言是耗费系统资源的操作,在多层构造的利用程序环境中这种耗费资源的行动对系统的性能影响尤为明显.
在多层构造的利用程序中通过衔接池(connection pooling)技术可以使系统的性能明显得到提到,衔接池意味着当利用程序需求调用一个数据库衔接的时,数据库相关的接口通过返回一个通太重用数据库衔接来替换重新成立一个数据库衔接.通过这种方法,利用程序可以削减对数据库衔接操作,特别在多层环境中多个客户端可以通过同享少量的物理数据库衔接来满意系统需求.通过衔接池技术Java利用程序不但可以提高系统性能同时也为系统提高了可丈量性.
数据库衔接池是运行在后台的并且利用程序的编码没有任何的影响.此中情况存在的前提是利用程序必须通过DataSource对象(一个实现javax.sql.DataSource接口的实例)的方法替换原有通过DriverManager类来得到数据库衔接的方法.一个实现javax.sql.DataSource接口的类可以支持也可以不支持数据库衔接池,但是二者得到数据库衔接的代码基本是相同的.
代码以下:
一个DataSource对象普通注册在JNDI命名服务上,利用程序可以通过尺度的方法获得到注册在JNDI服务上的DataSource对象.
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc/openbase");
假如当前DataSource不支持数据库衔接池,利用程序将得到一个和物理数据库衔接对应的Connection对象.而假如当前的DataSource对象支持数据库衔接池,利用程序自动得到重用的数据库衔接而不用成立新的数据库衔接.重用的数据库衔接和新成立衔接的数据库衔接利用上没有任何差别.利用程序可以通太重用的衔接正常的拜候数据库,举行拜候数据的操作,完成操作后应显式的调用close()关闭数据库衔接.
Connection con = ds.getConnection("User", "Pwd");
相关数据库的操作;
con.close();
当关闭数据衔接后,当前利用的数据库衔接将不会被物理关闭,而是放回到数据库衔接池中举行重用.
JDBC3.0标准中数据库衔接池框架
JDBC3.0标准中通过供应了一个支持数据库衔接池的框架,这个框架仅仅规定了若何支持衔接池的实现,而衔接池的具体实现JDBC 3.0标准并没有做相关的规定.通过这个框架可以让差别角色的开辟人员共同实现数据库衔接池.
通过JDBC3.0标准可以知道具体数据库衔接池的实现可以分为JDBC Driver级和Application Server级.在JDBC Driver级的实现中任何相关的工作均由特定数据库厂商的JDBC Drvier的开辟人员来具体实现,即JDBC Driver既需求供应对数据库衔接池的支持同时也必须对数据库衔接池举行具体实现.而在Application Server级中数据库衔接池的实现中特定数据库厂商的JDBC Driver开辟人员和Application Server开辟人员来共同实现数据库衔接池的实现(但是目前大大都Application Server厂商实现的衔接池的机制和标准中提到有差别),此中特定数据库厂商的JDBC Driver供应数据库衔接池的支持而特定的Application Server厂商供应数据库衔接池的具体实现.
JDBC3.0标准规定了以下的类和接口来支持数据库衔接池的实现.
javax.sql.ConnectionEvent
javax.sql.ConnectionPoolDataSource
javax.sql.PooledConnection
javax.sql.ConnectionEventListener
此中除javax.sql.ConnectionEvent是类,别的的均为接口.
JDBC3.0衔接池框架的关系图
以上是“JDBC3.0研究报告(节选)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |