JDBCRowSet的可序列化快照?

时间:2014-08-13 20:49:16

标签: java serialization rowset

JdbcRowSet界面是已关联的RowSet,与CachedRowSet不同,未实现Serializable
如果您创建了一个同时实现JdbcRowSetSerializable的类,会发生什么?它是否会在序列化时有效地发送JdbcRowSet的快照,或者这样的类是否无法用于任何用途?

(这比我自己的理解更多,而不是任何应用程序;我理解CachedRowSet实现可能是获得相同结果的正确途径。)

1 个答案:

答案 0 :(得分:0)

由于JDBCRowSet是一个连接的体系结构,因此不希望将类序列化,因为它在jdbc驱动程序的帮助下维护了与数据库的连接。所以,最好使用CachedRowSet(在序列化的情况下) turn是一个断开连接的架构。

以下是这两种RowSet的区别: 1)JdbcRowSet: JdbcRowSet类提供了javax.sql.RowSet接口的基本实现,该接口将ResultSet对象转换为JavaBean并抽象使用ResultSet对象的详细信息。您可以使用此对象来简化连接步骤,或为不支持这些功能的驱动程序提供可滚动和可更新的游标。但是,JdbcRowSet对象只能在连接模式下运行,因此需要存在JDBC驱动程序。

2)缓存行集: CachedRowSet类提供与JdbcRowSet类相同的功能,但有一个重要区别:CachedRowSet对象可以在断开连接的环境中运行。因此,它可以在没有JDBC驱动程序的情况下运行。使用数据填充CachedRowSet对象后,您可以通过网络将其发送给瘦客户端,将其提供给笔记本电脑上的销售专业人员,或者将其序列化以进行数据存档。 CachedRowSet对象的优点是发送对象的客户端不需要JDBC驱动程序。