JDBC RowSet

2025年3月17日 | 阅读 3 分钟

RowSet 的实例是 Java Bean 组件,因为它具有属性和 Java Bean 通知机制。它是 ResultSet 的包装器。JDBC RowSet 提供了一种将数据保持为表格形式的机制。它使得数据比 ResultSet 更具灵活性,也更容易处理。数据源与 RowSet 对象之间的连接在其整个生命周期中都得以维护。RowSet 支持组件化的开发模型,如 JavaBeans,具有标准的属性集和事件通知机制。

RowSet 的支持是在 JDBC 2.0 中通过可选包引入的。但是,RowSet 的实现已在 Sun Microsystems 的 JDBC RowSet Implementations Specification (JSR-114) 中标准化,该规范存在于 JDK (Java Development Kit) 5.0 中。

RowSet 接口的实现类如下:

  • JdbcRowSet
  • CachedRowSet
  • WebRowSet
  • JoinRowSet
  • FilteredRowSet
Java Rowset

让我们看看如何创建和执行 RowSet。

自 JDK 7 起,这是获取 JdbcRowSet 实例的新方法。

RowSet 的优势

使用 RowSet 的优点如下:

  1. 它易于使用且灵活。
  2. 默认情况下,它是可滚动的和可更新的。

JdbcRowSet 示例

让我们看看一个简单的 JdbcRowSet 示例,不包含事件处理代码。

文件名: RowSetExample.java

输出如下:

Id: 55
Name: Om Bhim
Salary: 70000
Id: 190
Name: abhi
Salary: 40000
Id: 191
Name: umesh
Salary: 50000

带事件处理的 JDBC RowSet 示例

要执行带 JdbcRowSet 的事件处理,您需要在 JdbcRowSet 的 addRowSetListener 方法中添加 RowSetListener 的实例。

RowSetListener 接口提供了 3 个必须实现的方法。它们如下:

  1. public void cursorMoved(RowSetEvent event);
  2. public void rowChanged(RowSetEvent event);
  3. public void rowSetChanged(RowSetEvent event);

让我们编写代码来检索数据并在光标移动、光标更改或 rowset 更改时执行一些附加任务。事件处理操作无法使用 ResultSet 完成,因此现在更倾向于使用 RowSet。

文件名: RowSetExample.java

输出如下

Cursor Moved...
Id: 55
Name: Om Bhim
Salary: 70000
Cursor Moved...
Id: 190
Name: abhi
Salary: 40000
Cursor Moved...
Id: 191
Name: umesh
Salary: 50000
Cursor Moved...

下一个主题JDBC 新特性