Module java.sql
Package javax.sql

Interface StatementEventListener

所有超级接口:
EventListener

public interface StatementEventListener extends EventListener
注册以通知发生在语句池中的 PreparedStatements 上的事件的对象。

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

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

允许组件向 PooledConnection 注册 StatementEventListener 的方法已添加到 PooledConnection 接口中。

自版本:
1.6
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    当驱动程序检测到 PreparedStatement 被关闭时,它会调用连接上注册的所有 StatementEventListener 的此方法。
    void
    当驱动程序检测到 PreparedStatement 无效时,它会调用连接上注册的所有 StatementEventListener 的此方法。
  • Method Details

    • statementClosed

      void statementClosed(StatementEvent event)
      当驱动程序检测到 PreparedStatement 被关闭时,它会调用连接上注册的所有 StatementEventListener 的此方法。
      参数:
      event - 描述事件源和 PreparedStatement 被关闭的事件对象。
      自版本:
      1.6
    • statementErrorOccurred

      void statementErrorOccurred(StatementEvent event)
      当驱动程序检测到 PreparedStatement 无效时,它会在向应用程序抛出给定事件中包含的 SQLException 之前调用连接上注册的所有 StatementEventListener 的此方法。
      参数:
      event - 描述事件源、无效语句和驱动程序即将抛出的异常的事件对象。事件源是与无效 PreparedStatement 关联的 PooledConnection
      自版本:
      1.6