【发布时间】:2016-07-10 20:01:25
【问题描述】:
我们的团队正在与使用jdbc 的Oracle 数据库服务器紧密合作。在我们的一项更改中,我调用了一个存储过程,它返回了两个不同的ResultSets。起初我的实现假定默认滚动能力。
失败后,我上网查了一下。
我能读到的所有关于它的内容基本上都是一样的:使用 prepareStatement 或 prepareCall 方法以及适当的 TYPE_SCROLL_INSENSITIVE 和 CONCUR_READ_ONLY。这些都不起作用。
我使用的存储过程再次返回两个不同的结果集,它们是通过(ResultSet) rs.getObject("name") 提取的。通常在示例中,他们的 ResultSet 会立即从 .executeQuery 返回。
我的问题是,prepareCall 方法中的 Scrollablility/Updatability 类型会影响这些类型的 ResultSet 吗?如果是这样,我如何获得它们?
我知道 JDBC 驱动程序会降低我对 ScrollableResultSet 的请求。 如何判断我的 ResultSet 是否已降级?
关于这一点,为什么默认情况下 ResultSet 不能滚动?最佳做法是什么?其灵活性的“成本”是多少?
【问题讨论】:
标签: java oracle jdbc resultset