gpt4 book ai didi

java - spring jdbc RowCallbackHandler 噩梦

转载 作者:行者123 更新时间:2023-11-30 05:14:17 28 4
gpt4 key购买 nike

我在使用 Spring Jdbc 从数据库检索数据时遇到问题。这是我的问题:

我的 DAO 上有一个 getData() 方法,该方法应该从某些 select 语句的结果中返回一行。再次调用时,getData() 方法应以类似 FIFO 的方式返回第二行。我的目标是一次只在内存中保存一个结果,因为我的表格将来可能会变得很大,并且将所有内容都存入内存将是一场灾难。

如果我使用带有结果集的常规 jdbc 代码,我可以将其获取大小设置为 1,一切都会好起来的。然而我最近发现通过 JdbcTemplate 对象进行 Spring Jdbc 操作不允许我实现这样的行为(据我所知......我对 Spring 框架的功能并不真正了解)。我听说过 RowCallbackHandler 接口(interface),并且 this java ranch 中的帖子说我可以以某种方式公开稍后使用的结果集(尽管使用此方法它会存储结果集与行数一样多的次数,这是相当愚蠢的)。

我已经花了一天时间来实现 RowCallbackHandler 接口(interface),但我仍然找不到一种方法让它一次从我的选择中检索一行。如果有人能在这件事上启发我,我将不胜感激。

最佳答案

JdbcTemplate.setFetchSize(int fetchSize) :

Set the fetch size for this JdbcTemplate. This is important for processing large result sets: Setting this higher than the default value will increase processing speed at the cost of memory consumption; setting this lower can avoid transferring row data that will never be read by the application.

Default is 0, indicating to use the JDBC driver's default.

关于java - spring jdbc RowCallbackHandler 噩梦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2199688/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com