在《Java核心技术》上说,可滚动的行集虽然功能强大,但是一个重要缺陷是:在与用户交互过程中,必须始终与数据库保持连接,从而耗费数据库资源。而行集(RowSet)无需始终保持与数据库的连接。
但是又提到一个问题,如果在填充了行集之后,如果此时数据库中的数据发生了变化的话,容易造成数据库数据的不一致性。因此参考实现会首先检查行集中的原始值是否与数据库中的当前值一致,如果不一致,就抛出SyncProviderException异常。那么用RowSet如果每次都是去检查数据是否一致的话,岂不更浪费数据库的资源吗?ResultSet只是保持连接,而RowSet每次都去查询一次是否数据一致,岂不更费时?
但是又提到一个问题,如果在填充了行集之后,如果此时数据库中的数据发生了变化的话,容易造成数据库数据的不一致性。因此参考实现会首先检查行集中的原始值是否与数据库中的当前值一致,如果不一致,就抛出SyncProviderException异常。那么用RowSet如果每次都是去检查数据是否一致的话,岂不更浪费数据库的资源吗?ResultSet只是保持连接,而RowSet每次都去查询一次是否数据一致,岂不更费时?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货