| 
 | JavaTM 2 Platform Standard Ed. 5.0 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
所有标准 JdbcRowSet 实现都必须实现的标准接口。
ResultSet 对象的包装器使得将该结果集用作 JavaBeansTM 组件成为可能。因此,JdbcRowSet 对象可以是某个 Beans,是可用于组成应用程序的工具。因为 JdbcRowSet 是一个连接的 rowset,也就是说,它使用启用 JDBC 技术的驱动程序来维持它与数据库的连接,所以它也能有效地使驱动程序成为 JavaBeans 组件。
 
因为它始终连接到其数据库,所以 JdbcRowSet 的实例可以简单地采用在其上进行调用的方法,并依次对其 ResultSet 对象调用这些方法。因此,结果集可以是(举例来说)Swing 应用程序中的一个组件。
 
JdbcRowSet 对象的另一个优点是可使用它让 ResultSet 对象可滚动和可更新。默认情况下,所有 RowSet 对象都是可滚动的和可更新的。如果使用的驱动程序和数据库不支持结果集的滚动和/或更新,则应用程序可以组装一个带 ResultSet 对象数据的 JdbcRowSet 对象,然后在该 JdbcRowSet 对象上操作,就好像它是 ResultSet 对象一样。   
 
JdbcRowSet 对象JdbcRowSet 接口的参考实现 JdbcRowSetImpl 提供了默认构造方法的实现。使用默认值初始化新的实例,可根据需要使用新值设置这些默认值。在调用新实例的 execute 方法之前,它实际上无法真正发挥作用。通常,此方法执行以下操作:
 PreparedStatement 对象并设置其所有占位符参数
ResultSet 对象
 execute 方法执行成功,则使用以下内容设置适当的私有 JdbcRowSet 字段:
 Connection 对象 -- rowset 和数据库之间的连接
PreparedStatement 对象 -- 生成结果集的查询
ResultSet 对象 -- rowset 的命令所生成的和正在生成的结果集,实际上是一个 JavaBeans 组件       
 execute 方法,此时除 execute 和 close 以外,不能在该 rowset 上调用任何方法。调用所有其他公共方法都会抛出异常。
 
但是在调用 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 组件。
 
JdbcRowSet 参考实现中的 RowSet 方法 execute 的实现与 CachedRowSetTM 参考实现中的不同,从而导致对已连接和非连接 RowSet 对象的不同要求。
 
| 字段摘要 | 
|---|
| 方法摘要 | |
|---|---|
|  void | commit()每个 JdbcRowSet都包含一个取自ResultSet的Connection对象或传递到其构造方法的 JDBC 属性。 | 
|  boolean | getAutoCommit()每个 JdbcRowSet都包含一个取自原始ResultSet的Connection对象或传递给它的 JDBC 属性。 | 
|  RowSetWarning | getRowSetWarnings()检索此 JdbcRowSet对象上的调用报告的第一个警告。 | 
|  boolean | getShowDeleted()检索一个 boolean值,该值指示标记为删除的行是否会出现在当前行集合中。 | 
|  void | rollback()每个 JdbcRowSet都包含一个取自原始ResultSet的Connection对象或传递给它的 JDBC 属性。 | 
|  void | rollback(Savepoint s)每个 JdbcRowSet都包含一个取自原始ResultSet的Connection对象或传递给它的 JDBC 属性。 | 
|  void | setAutoCommit(boolean autoCommit)每个 JdbcRowSet都包含一个取自原始ResultSet的Connection对象或传递给它的 JDBC 属性。 | 
|  void | setShowDeleted(boolean b)将属性 showDeleted设置为给定的boolean值。 | 
| 从接口 javax.sql.rowset.Joinable 继承的方法 | 
|---|
| getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn | 
| 方法详细信息 | 
|---|
boolean getShowDeleted()
                       throws SQLException
boolean 值,该值指示标记为删除的行是否会出现在当前行集合中。如果返回 true,则已删除行与当前行一起可见。如果返回 false,则已删除行与当前行集合一起不可见。默认值为 false。
 出于安全考虑或为了某些部署情况,标准的 rowset 实现可以选择限制此行为。已删除行的可见性是实现定义的,并不表示标准行为。
注:允许保持已删除行可见会使某些标准 JDBC RowSet 实现方法的行为变得复杂。但是,多数 rowset 用户可以简单地忽略此额外细节,因为只有极其特殊的应用程序才会利用此功能。
true;否则返回 false
SQLException - 如果 rowset 实现无法确定是否使标记为删除的行保持可见setShowDeleted(boolean)
void setShowDeleted(boolean b)
                    throws SQLException
showDeleted 设置为给定的 boolean 值。此属性确定标记为删除的行是否继续出现在当前行集合中。如果将值设置为 true,则已删除行与当前行集合一起立即可见。如果将值设置为 false,则已删除行与当前行集合一起被设置为不可见。
 出于安全考虑或为了某些部署情况,标准的 rowset 实现可以选择限制此行为。这是由实现定义的,并不表示标准行为。
b - 如果应该显示已删除行,则为 true;否则为 false
SQLException - 如果 rowset 实现无法重置已删除行是否应该可见getShowDeleted()RowSetWarning getRowSetWarnings() throws SQLException
JdbcRowSet 对象上的调用报告的第一个警告。如果此 JdbcRowSet 对象上报告了第二个警告,则将它链接到第一个警告,并可通过在第一个警告上调用方法 RowSetWarning.getNextWarning 来检索该警告。此 JdbcRowSet 对象上的后续警告会被链接到方法 RowSetWarning.getNextWarning 返回的 RowSetWarning 对象。
每次读取新行时,都会自动清除警告链。不可以在已经关闭的 RowSet 对象上调用此方法;这样做将导致抛出 SQLException。
 
因为 JdbcRowSet 对象始终连接到其数据源,所以该对象可以依靠现有的活动 Statement、Connection 和 ResultSet 实例。这意味着应用程序可以通过调用 getNextWarning 方法来获得所提供的附加 SQLWarning 通知。非连接 Rowset 对象(如 CachedRowSet 对象)不必访问这些 getNextWarning 方法。
JdbcRowSet 对象上报告第一个 RowSetWarning 对象,如果没有则为 null
SQLException - 如果在已关闭的 JdbcRowSet 对象上调用此方法RowSetWarning
void commit()
            throws SQLException
JdbcRowSet 都包含一个取自 ResultSet 的 Connection 对象或传递到其构造方法的 JDBC 属性。此方法包装 Connection 提交方法,以允许灵活的自动提交或非自动提交事务控制支持。
 使自从上一次提交/回滚以来进行的所有更改成为持久更改,并释放此 Connection 对象当前保存的所有数据库锁定。此方法应该只在已禁用自动提交模式时使用。
SQLException - 如果发生数据库访问错误或者此 JdbcRowSet 内的 Connection 对象处于自动提交模式下Connection.setAutoCommit(boolean)
boolean getAutoCommit()
                      throws SQLException
JdbcRowSet 都包含一个取自原始 ResultSet 的 Connection 对象或传递给它的 JDBC 属性。此方法包装 Connection 的 getAutoCommit 方法,以允许应用程序确定 JdbcRowSet 的事务行为。
 将此 connection 的自动提交模式设置为给定的状态。如果 connection 处于自动提交模式下,则将执行其所有 SQL 语句,并将这些语句作为单独的事务提交。否则,其 SQL 语句将成组地进入通过调用 commit 方法或 rollback 方法终止的事务中。默认情况下,新的 connection 处于自动提交模式下。
SQLException - 如果发生数据库访问错误Connection.getAutoCommit()
void setAutoCommit(boolean autoCommit)
                   throws SQLException
JdbcRowSet 都包含一个取自原始 ResultSet 的 Connection 对象或传递给它的 JDBC 属性。此方法包装 Connection 的 getAutoCommit 方法,以允许应用程序设置 JdbcRowSet 的事务行为。
 
设置此 Connection 对象的当前自动提交模式。
SQLException - 如果发生数据库访问错误Connection.setAutoCommit(boolean)
void rollback()
              throws SQLException
JdbcRowSet 都包含一个取自原始 ResultSet 的 Connection 对象或传递给它的 JDBC 属性。取消在当前事务中进行的所有更改,并释放此 Connection 对象当前保存的所有数据库锁定。此方法应该只在已禁用自动提交模式时使用。
SQLException - 如果发生数据库访问错误或者此 JdbcRowSet 内的 Connection 对象处于自动提交模式下。rollback(Savepoint)void rollback(Savepoint s) throws SQLException
JdbcRowSet 都包含一个取自原始 ResultSet 的 Connection 对象或传递给它的 JDBC 属性。取消在当前事务中进行的所有更改,一直到最后设置的保存点,并释放此 Connection 对象当前保存的所有数据库锁定。此方法应该只在已禁用自动提交模式时使用。
SQLException - 如果发生数据库访问错误或者此 JdbcRowSet 内的 Connection 对象处于自动提交模式下。rollback()| 
 | JavaTM 2 Platform Standard Ed. 5.0 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。