当使用各种JDBC模板方法之一时,我对如何遍历/滚动大型结果集(不适合内存)感到困惑。即使没有Iterable接口的直接暴露,我也会至少期望RowCallbackHandler的实例被调用,而查询在完成后(或堆溢出)不会执行。Spring JDBC支持和大型数据集
我确实在this看看一个(这对我来说什么都没有改变,尽管是在精神this post在堆栈溢出类似),并在this后在春季论坛。后者似乎表明,在光标获取数据时,回调处理程序确实应该被调用。然而我的测试显示没有这样的行为。
的数据库是Oracle10g中。我正在使用11.1.0.7.0-Production驱动程序和Spring 2.5.6.SEC01。任何人想法如何迭代结果集,最好同时保持RowMapper的映射逻辑等?
setFetchSize并没有改变我的东西,我尝试过使用它。您是否针对Oracle实例开发?对我来说RowCallBackHandler只是挂起,等待查询完成,因为我在我的OP中写道。 – yawn
显然我在测试中的JDBC模板上忘记了afterPropertiesSet()之后的调用。尴尬,但现在它的工作原理:*) – yawn