📜  Java JDBC – 行集和结果集的区别

📅  最后修改于: 2022-05-13 01:55:04.478000             🧑  作者: Mango

Java JDBC – 行集和结果集的区别

结果集特性如下:

  • 它维护与数据库的连接,因此无法序列化。
  • 它不能通过网络将结果集对象从一个类传递到另一个类。
  • ResultSet 对象维护一个指向其当前数据行的游标。最初,光标位于第一行之前。 next 方法将光标移动到下一行,因为当 ResultSet 对象中没有更多行时它返回 false,所以可以在 while 循环中使用它来遍历结果集。
  • javax.sql.rowset.RowSet 是一个 ResultSet 的包装器,它使得可以将结果集用作 JDBC Java的 JavaBeans 组件。
  • ResultSet 不能单独用作 JavaBeans 组件。

RowSet 特性如下:

  • 它是 JDBC ResultSet 的一个断开连接的、可序列化的版本。它还扩展了 ResultSet 接口。
  • 行集可以被序列化,因为它没有到任何数据库的连接。
  • Row Set 接口提供了一组 JavaBeans 属性,允许将 Row Set 实例配置为连接到 JDBC 数据源并从数据源读取一些数据。一组 setter 方法(setInt、setBytes、setString 等)提供了一种将输入参数传递给行集的命令属性的方法。
  • Row Set 接口扩展了Java的ResultSet 接口。
  • javax.sql.rowset.JdbcRowSet Row Set 的子类是 ResultSet 的包装器,它使得可以将结果集用作 JavaBeans 组件。

现在让我们总结如下区分它们:



          RowSet                                                                                    ResultSet                                              
RowSet is present in the javax.sql package ResultSet is present in the java.sql package 
A Row Set can be connected, disconnected from the database.A ResultSet always maintains the connection with the database.
RowSet is scrollable providing more flexibility  ResultSet by default is always forward only 
 A Row Set object can be serialized.It cannot be serialized.
You can pass a Row Set object over the network.ResultSet object cannot be passed other over the network.

Result Set Object is a JavaBean object.

 RowSet using the RowSetProvider.newFactory().createJdb cRowSet() method.

Result Set object is not a JavaBean object

result set using the executeQuery() method

ResultSetBy default, RowSet object is scrollable and updatable.By default, the ResultSet object is not scrollable or, updatable.