模块  java.sql
软件包  javax.sql

Interface StatementEventListener

  • All Superinterfaces:
    EventListener

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

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

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

    PooledConnection接口中添加了允许组件将StatementEventListener注册为PooledConnectionPooledConnection

    从以下版本开始:
    1.6
    • 方法详细信息

      • statementClosed

        void statementClosed​(StatementEvent event)
        当驱动程序检测到 PreparedStatement已关闭时,会在连接上注册的所有 StatementEventListener上调用此方法。
        参数
        event - 描述事件源并且 PreparedStatement已关闭的事件对象。
        从以下版本开始:
        1.6
      • statementErrorOccurred

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