结果集的特点如下:

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

RowSet的特点如下:

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

注:RowSet是ResultSet的替代品,但比ResultSet更有效。

现在让我们总结一下它们的区别,如下所示:

RowSet ResultSet
RowSet存在于javax.sql包中 ResultSet存在于java.sql包中
RowSet可以与数据库连接或断开。 一个结果集总是保持与数据库的连接。
RowSet是可滚动的,提供了更多的灵活性 ResultSet默认情况下总是只向前看。
一个行集对象可以被序列化。 它不能被序列化。
可以通过网络传递一个Row Set对象。 ResultSet对象不能通过网络传递其他对象。
结果集对象是一个JavaBean对象。 RowSet使用RowSetProvider.newFactory().createJdb cRowSet()方法。
结果集对象不是一个JavaBean对象 使用executeQuery()方法的结果集
ResultSet默认情况下,RowSet对象是可滚动和可更新的。 默认情况下,ResultSet对象是不可滚动或,更新的。

Java JDBC 行集和结果集的区别

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Java JDBC 行集和结果集的区别
本文链接:https://www.vsdiffer.com/vs/java-jdbc-difference-between-row-set-and-result-set.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。