public interface StatementEventListener
注册为能获得 Statement 池中 PreparedStatement 上所发生事件的通知的对象。
JDBC 3.0 规范添加了 maxStatement ConnectionPooledDataSource
属性,以为启用 PreparedStatement
的池操作提供标准机制并指定语句池的大小。然而,当 PreparedStatement
变为无效时,驱动程序无法通知外部语句池。对于某些数据库,如果执行影响表的 DDL 操作,则语句将变为无效。例如,应用程序可以创建一个临时表,在表上进行某些操作然后销毁它。再次需要时,应用程序还可重新创建相同的表。销毁该表后,某些数据库将使所有引用该临时表的准备语句无效。
与 ConnectionEventListener
接口中定义的方法类似,驱动程序检测到语句无效时将在抛出异常之前调用 StatementEventListener.statementErrorOccurred
方法。PreparedStatement
关闭时,驱动程序也将调用 StatementEventListener.statementClosed
方法。
允许组件使用 PooledConnection
注册 StatementEventListener 的方法已经被添加到 PooledConnection
接口。
方法摘要 | |
---|---|
void |
statementClosed(StatementEvent event) 检测到 PreparedStatement 关闭时,驱动程序对所有在连接上注册的 StatementEventListener 调用此方法。 |
void |
statementErrorOccurred(StatementEvent event) 检测到 PreparedStatement 无效时,驱动程序对所有在连接上注册的 StatementEventListener 调用此方法。 |
方法详细信息 |
---|
void statementClosed(StatementEvent event)
PreparedStatement
关闭时,驱动程序对所有在连接上注册的
StatementEventListener
调用此方法。
event
- 一个事件对象,它描述事件源以及
PreparedStatement
已经关闭。
void statementErrorOccurred(StatementEvent event)
PreparedStatement
无效时,驱动程序对所有在连接上注册的
StatementEventListener
调用此方法。驱动程序在向应用程序抛出包含于给定事件的
SQLException
之前调用此方法。
event
- 一个事件对象,它描述事件源、无效的语句和驱动程序将要抛出的异常。事件源是与无效
PreparedStatement
关联的
PooledConnection
。