javax.sql

接口
所有超级接口:
EventListener

public interface StatementEventListener
     
extends EventListener

注册为能获得 Statement 池中 PreparedStatement 上所发生事件的通知的对象。

JDBC 3.0 规范添加了 maxStatement ConnectionPooledDataSource 属性,以为启用 PreparedStatement 的池操作提供标准机制并指定语句池的大小。然而,当 PreparedStatement 变为无效时,驱动程序无法通知外部语句池。对于某些数据库,如果执行影响表的 DDL 操作,则语句将变为无效。例如,应用程序可以创建一个临时表,在表上进行某些操作然后销毁它。再次需要时,应用程序还可重新创建相同的表。销毁该表后,某些数据库将使所有引用该临时表的准备语句无效。

ConnectionEventListener 接口中定义的方法类似,驱动程序检测到语句无效时将在抛出异常之前调用 StatementEventListener.statementErrorOccurred 方法。PreparedStatement 关闭时,驱动程序也将调用 StatementEventListener.statementClosed 方法。

允许组件使用 PooledConnection 注册 StatementEventListener 的方法已经被添加到 PooledConnection 接口。

从以下版本开始:
1.6

方法摘要
 void statementClosed(StatementEvent event)
          检测到 PreparedStatement 关闭时,驱动程序对所有在连接上注册的 StatementEventListener 调用此方法。
 void statementErrorOccurred(StatementEvent event)
          检测到 PreparedStatement 无效时,驱动程序对所有在连接上注册的 StatementEventListener 调用此方法。
 

方法详细信息

statementClosed

void statementClosed(StatementEvent event)
检测到 PreparedStatement 关闭时,驱动程序对所有在连接上注册的 StatementEventListener 调用此方法。

参数:
event - 一个事件对象,它描述事件源以及 PreparedStatement 已经关闭。
从以下版本开始:
1.6

statementErrorOccurred

void statementErrorOccurred(StatementEvent event)
检测到 PreparedStatement 无效时,驱动程序对所有在连接上注册的 StatementEventListener 调用此方法。驱动程序在向应用程序抛出包含于给定事件的 SQLException 之前调用此方法。

参数:
event - 一个事件对象,它描述事件源、无效的语句和驱动程序将要抛出的异常。事件源是与无效 PreparedStatement 关联的 PooledConnection

从以下版本开始:
1.6