所有类


javax.sql
接口 PooledConnection

所有已知子接口:
XAConnection

public interface PooledConnection

为连接池管理提供挂钩的对象。PooledConnection 对象表示到数据源的物理连接。该连接在应用程序使用完后可以回收而不用关闭,从而减少了需要建立连接的次数。

应用程序员不直接使用 PooledConnection 接口,而是通过一个管理连接池的中间层基础设施使用。

当应用程序调用 DataSource.getConnection 方法时,它取回 Connection 对象。如果连接池已完成,则该 Connection 对象实际上是到 PooledConnection 对象的句柄,这是一个物理连接。

连接池管理器(通常为应用程序服务器)维护 PooledConnection 对象的池。如果在池中存在可用的 PooledConnection 对象,则连接池管理器返回作为到该物理连接的句柄的 Connection 对象。如果不存在可用的 PooledConnection 对象,则连接池管理器调用 PooledConnection 方法 getConnection 创建新的物理连接并返回一个到它的句柄。

当应用程序关闭连接时,它调用 Connection 方法 close。完成连接池时,连接池管理器将得到通知;因为它曾使用 ConnectionPool 方法 addConnectionEventListener 作为 ConnectionEventListener 对象注册它自身。连接池管理器释放到 PooledConnection 对象的句柄,并将 PooledConnection 对象返回到连接池,以便再次使用。因此,当应用程序关闭其连接时,基础物理连接会被回收而不是被关闭。

在连接池管理器调用 PooledConnection 方法 close 之前,物理连接不会被关闭。调用此方法通常是为了按顺序关闭服务器,也可能在发生了严重错误,导致连接变得不可用时调用。

从以下版本开始:
1.4

方法摘要
 void addConnectionEventListener(ConnectionEventListener listener)
          注册给定的事件侦听器,以便在此 PooledConnection 对象上发生事件时它将得到通知。
 void close()
          关闭此 PooledConnection 对象表示的物理连接。
 Connection getConnection()
          创建并返回一个 Connection 对象,它是此 PooledConnection 对象表示的物理连接的句柄。
 void removeConnectionEventListener(ConnectionEventListener listener)
          从在此 PooledConnection 对象上发生事件时得到通知的组件所组成的列表中移除给定的事件侦听器。
 

方法详细信息

getConnection

Connection getConnection()
                         throws SQLException
创建并返回一个 Connection 对象,它是此 PooledConnection 对象表示的物理连接的句柄。当应用程序已经调用 DataSource.getConnection 方法但不存在可用的 PooledConnection 对象时,连接池管理器将调用此方法。有关更多信息,请参阅接口描述

返回:
一个 Connection 对象,它是到此 PooledConnection 对象的句柄
抛出:
SQLException - 如果发生数据库访问错误

close

void close()
           throws SQLException
关闭此 PooledConnection 对象表示的物理连接。应用程序永远不会直接调用此方法;它由连接池模块或管理器调用。

有关更多信息,请参阅接口描述

抛出:
SQLException - 如果发生数据库访问错误

addConnectionEventListener

void addConnectionEventListener(ConnectionEventListener listener)
注册给定的事件侦听器,以便在此 PooledConnection 对象上发生事件时它将得到通知。

参数:
listener - 一个组件(通常为连接池管理器),它实现了 ConnectionEventListener 接口,并在关闭连接或发生错误时应得到通知
另请参见:
removeConnectionEventListener(javax.sql.ConnectionEventListener)

removeConnectionEventListener

void removeConnectionEventListener(ConnectionEventListener listener)
从在此 PooledConnection 对象上发生事件时得到通知的组件所组成的列表中移除给定的事件侦听器。

参数:
listener - 一个组件(通常为连接池管理器),它实现了 ConnectionEventListener 接口,并已作为侦听器向此 PooledConnection 对象注册
另请参见:
addConnectionEventListener(javax.sql.ConnectionEventListener)

所有类

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部