RowSet 对象可以建立一个与数据源的连接并在其整个生命周期中维持该连接,在此情况下,该对象被称为连接的 rowset。rowset 还可以建立一个与数据源的连接,从其获取数据,然后关闭它。这种 rowset 被称为非连接 rowset。非连接 rowset 可以在断开时更改其数据,然后将这些更改发送回原始数据源,不过它必须重新建立连接才能完成此操作。 相比较 java.sql.ResultSet 而言,RowSet 的离线操作能够有效的利用计算机越来越充足的内存,减轻数据库服务器的负担,由于数据操作都是在内存中进行然后批量提交到数据源,灵活性和性能都有了很大的提高。RowSet 默认是一个可滚动,可更新,可序列化的结果集,而且它作为 JavaBeans,可以方便地在网络间传输,用于两端的数据同步。
1、与ResultSet比较
(1)RowSet扩展了ResultSet接口,因此可以像使用ResultSet一样使用RowSet。
(2)RowSet扩展了ResultSet接口,因此功能比ResultSet更多、更丰富。
(3)默认情况下,所有 RowSet 对象都是可滚动的和可更新的。而ResultSet是只能向前滚动和只读的。
(4)RowSet可以是非链接的,而ResultSet是连接的。因此利用CacheRowSet接口可以离线操作数据。
(5)RowSet接口添加了对 JavaBeans 组件模型的 JDBC API 支持。rowset 可用作可视化 Bean 开发环境中的 JavaBeans 组件。
(6)RowSet采用了新的连接数据库的方法。
(7)CacheRowSet是可以序列化的。
(8)RowSet和ResultSet都代表一行行的数据、属性以及相关操作方法。
(9)自己认为,应该倾向于把RowSet看成是与数据库无关的东西,它只是一个代表一行行数据的对象,而ResultSet则是一个与数据库紧密联系的东西。
2、JDK 5.0 的5个标准RowSet接口
