Module  java.sql.rowset
软件包  javax.sql.rowset

Interface JdbcRowSet

  • All Superinterfaces:
    AutoCloseableJoinableResultSetRowSetWrapper


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

    1.0概述

    围绕ResultSet对象的包装器,可以将结果集用作JavaBeans的组件。 因此,一个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语句被分组到通过调用方法commit或方法回滚而终止的事务中。 默认情况下,新连接处于自动提交模式。

        结果
        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()