可滚动ResultSet(JDBC)的createStatement参数之间的区别

时间:2016-09-14 16:48:01

标签: java jdbc

据我所知,可滚动ResultSet的语句对象如下所示。

Statement statement = connection.createStatement(P1, P2);

这里P1可能需要

ResultSet.TYPE_SCROLL_SENSITIVE
ResultSet.TYPE_SCROLL_INSENSITIVE

P2可能需要

ResultSet.CONCUR_READ_ONLY
ResultSet.CONCUR_UPDATABLE
  

SCROLL_SENSIVITE或INSENSITIVE表示是否更新   ResultSet将影响实际数据库或不影响。 (READ_ONLY或Updatable的种类)

所以这两个参数都是相似的,我觉得它们是为了同样的目的而实现的。

他们有什么不同,或者我在这里遗漏了什么?

1 个答案:

答案 0 :(得分:5)

第二个参数CONCUR_*确定是否可以通过ResultSet修改数据库。 TYPE_SCROLL_(IN)SENSITIVE确定在滚动ResultSet时是否可以看到对基础行所做的修改。所以INSENSITIVE提供了一个"快照"从结果来看,他们永远不会改变。 SENSITIVE提供"直播"查看,因此,如果您长时间滚动结果,您可以看到与查询最初返回的值非常不同的值。

相关,但他们是对立面"。