模块  java.sql.rowset
软件包  javax.sql.rowset

Interface JdbcRowSet

  • All Superinterfaces:
    AutoCloseableJoinableResultSetRowSetWrapper

    public interface JdbcRowSetextends RowSet, Joinable
    JdbcRowSet所有标准实现必须实现的标准接口。

    1.0概述

    围绕ResultSet对象的包装器,可以将结果集用作JavaBeans ResultSet组件。 因此, JdbcRowSet对象可以是工具可用于组成应用程序的Bean之一。 因为JdbcRowSet是一个连接的行集,也就是说,它使用支持JDBC技术的驱动程序不断维护与数据库的连接,因此它还有效地使驱动程序成为JavaBeans组件。

    因为它始终连接到它的数据库,所以JdbcRowSet的实例可以简单地接受在其上调用的调用,然后在其ResultSet对象上调用它们。 因此,结果集可以是,例如,Swing应用程序中的组件。

    JdbcRowSet对象的另一个优点是它可用于使ResultSet对象可滚动和可更新。 默认情况下,所有RowSet对象都是可滚动和可更新的。 如果正在使用的驱动程序和数据库不支持滚动和/或更新结果集,则应用程序可以使用JdbcRowSet对象的数据填充ResultSet对象,然后对JdbcRowSet对象进行操作,就像它是ResultSet对象一样。

    2.0创建JdbcRowSet对象

    JdbcRowSet接口的参考实现JdbcRowSetImpl提供了默认构造函数的实现。 使用默认值初始化新实例,可以根据需要使用新值进行设置。 在调用其execute方法之前,新实例并不真正起作用。 通常,此方法执行以下操作:
    • 建立与数据库的连接
    • 创建一个PreparedStatement对象并设置其任何占位符参数
    • 执行语句以创建ResultSet对象
    如果execute方法成功,它将使用以下内容设置相应的私有JdbcRowSet字段:
    • Connection对象 - 行集与数据库之间的连接
    • PreparedStatement对象 - 生成结果集的查询
    • ResultSet对象 - 行集的命令生成的结果集,实际上是JavaBeans组件
    如果尚未设置这些字段,意味着execute方法未成功执行,则不能execute集上调用executeclose以外的方法。 所有其他公共方法都会抛出异常。

    但是,在调用execute方法之前,必须设置建立连接所需的命令和属性。 以下代码片段创建JdbcRowSetImpl对象,设置命令和连接属性,设置占位符参数,然后调用方法execute

      JdbcRowSetImpl jrs = new JdbcRowSetImpl();     jrs.setCommand("SELECT * FROM TITLES WHERE TYPE = ?");     jrs.setURL("jdbc:myDriver:myAttribute");     jrs.setUsername("cervantes");     jrs.setPassword("sancho");     jrs.setString(1, "BIOGRAPHY");     jrs.execute(); 
    可变jrs现在表示的实例JdbcRowSetImpl即围绕一个瘦包装ResultSet包含在表中的所有行对象TITLES其中书的类型是基础资料。 此时,调用jrs操作将影响结果集中的行,这实际上是JavaBeans组件。

    所述的实施RowSet方法executeJdbcRowSet参考实现从在不同CachedRowSet A“¢参考实现以考虑连接和断开的不同要求RowSet对象。

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

      • getShowDeleted

        boolean getShowDeleted()                throws SQLException
        检索boolean指示标记为删除的行是否出现在当前行集中。 如果返回true ,则删除的行与当前行可见。 如果返回false ,则使用当前行集不显示行。 默认值为false

        标准行集实现可以选择限制此行为以用于安全性考虑或某些部署方案。 已删除行的可见性是实现定义的,并不代表标准行为。

        注意:允许删除的行保持可见会使某些标准JDBC RowSet实现方法的行为复杂化。 但是,大多数行集用户可以简单地忽略这些额外的细节,因为只有非常专业的应用程序才可能希望利用此功能。

        结果
        true如果删除的行是可见的; 否则为false
        异常
        SQLException - 如果行集实现无法确定标记为删除的行是否仍然可见
        另请参见:
        setShowDeleted(boolean)
      • setShowDeleted

        void setShowDeleted​(boolean b)             throws SQLException
        将属性showDeleted设置为给定的boolean值。 此属性确定标记为删除的行是否继续显示在当前行集中。 如果该值设置为true ,则使用当前行集立即可以看到已删除的行。 如果该值设置为false ,则删除的行将设置为当前行集不可见。

        标准行集实现可以选择限制此行为以用于安全性考虑或某些部署方案。 这保留为实现定义,并不代表标准行为。

        参数
        b - true是否应显示已删除的行; 否则为false
        异常
        SQLException - 如果行集实现无法重置是否应该显示已删除的行
        另请参见:
        getShowDeleted()
      • getRowSetWarnings

        RowSetWarning getRowSetWarnings()                         throws SQLException
        检索此JdbcRowSet对象上的调用报告的第一个警告。 如果在此JdbcRowSet对象上报告了第二个警告,则它将链接到第一个警告,并且可以通过在第一个警告上调用方法RowSetWarning.getNextWarning来检索。 JdbcRowSet对象的后续警告将链接到方法RowSetWarning.getNextWarning返回的RowSetWarning对象。 每次读取新行时都会自动清除警告链。 可能无法在已关闭的RowSet对象上调用此方法; 这样做会导致SQLException被抛出。

        因为它总是连接到它的数据源,一个JdbcRowSet对象可以依靠活性的存在StatementConnection ,和ResultSet实例。 这意味着应用程序可以通过调用它们提供的getNextWarning方法获取其他SQLWarning通知。 已断开连接的Rowset对象(例如CachedRowSet对象)无权访问这些getNextWarning方法。

        结果
        第一 RowSetWarning对象报道这对 JdbcRowSet对象或 null如果有没有
        异常
        SQLException - 如果在已关闭的 JdbcRowSet对象上调用此方法
        另请参见:
        RowSetWarning
      • commit

        void commit()     throws SQLException
        每个JdbcRowSet含有Connection从对象ResultSet或JDBC特性传递给它的构造函数。 此方法包装Connection提交方法以允许灵活的自动提交或非自动提交事务控制支持。

        使自上次提交/回滚以来所做的所有更改成为永久更改,并释放此Connection对象当前持有的所有数据库锁。 仅在禁用自动提交模式时才应使用此方法。

        异常
        SQLException - 如果发生数据库访问错误或此 JdbcRowSet此Connection对象处于自动提交模式
        另请参见:
        Connection.setAutoCommit(boolean)
      • getAutoCommit

        boolean getAutoCommit()               throws SQLException
        每个JdbcRowSet包含Connection从原始对象ResultSet或JDBC属性传递给它。 此方法包装ConnectiongetAutoCommit方法,以允许应用程序确定JdbcRowSet事务行为。

        将此连接的自动提交模式设置为给定状态。 如果连接处于自动提交模式,则其所有SQL语句将作为单个事务执行并提交。 否则,其SQL语句将分组为通过调用方法提交或方法回滚来终止的事务。 默认情况下,新连接处于自动提交模式。

        结果
        true如果启用了自动提交; 否则为false
        异常
        SQLException - 如果发生数据库访问错误
        另请参见:
        Connection.getAutoCommit()
      • setAutoCommit

        void setAutoCommit​(boolean autoCommit)            throws SQLException
        每个JdbcRowSet包含Connection从原始对象ResultSet或JDBC属性传递给它。 此方法包装ConnectiongetAutoCommit方法,以允许应用程序设置JdbcRowSet事务行为。

        设置此Connection对象的当前自动提交模式。

        参数
        autoCommit - true启用自动提交; false禁用自动提交
        异常
        SQLException - 如果发生数据库访问错误
        另请参见:
        Connection.setAutoCommit(boolean)
      • rollback

        void rollback()       throws SQLException
        每个JdbcRowSet包含Connection从原始对象ResultSet或JDBC属性传递给它。 撤消当前事务中所做的所有更改,并释放此Connection对象当前持有的所有数据库锁。 仅在禁用自动提交模式时才应使用此方法。
        异常
        SQLException -如果发生数据库访问错误或者此 Connection此内对象 JdbcRowSet是在自动提交模式。
        另请参见:
        rollback(Savepoint)
      • rollback

        void rollback​(Savepoint s)       throws SQLException
        每个JdbcRowSet包含Connection从原始对象ResultSet或JDBC属性传递给它。 将当前事务中所做的所有更改撤消到最后设置的保存点,并释放此Connection对象当前持有的所有数据库锁。 仅在禁用自动提交模式时才应使用此方法。
        参数
        s - 要回滚到的 Savepoint
        异常
        SQLException -如果发生数据库访问错误或者此 Connection此内对象 JdbcRowSet是在自动提交模式。
        另请参见:
        rollback()