gpt4 book ai didi

java - 从 SimpleJdbcTemplate 查询返回的大列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:40 25 4
gpt4 key购买 nike

这是我的问题:在我的 Java 程序中的某个时刻,我使用 Spring 的 SimpleJdbcTemplate 类从数据库中获得了一个(非常)大的事件列表。

List<Event> events = 
this.simpleJdbcTemplate.query(myQuery,
myMapper(),
new Object[] {
filter.getFirst(),
filter.getSecond(),
filter.getThird()}
);

问题是该列表可能包含类似 600,000 个事件...因此使用大量内存(并且还需要时间来处理)。

但是我真的不需要一次检索所有事件。实际上我希望能够遍历列表,只读取几个事件(链接到特定的 KEY_ID - sql 查询 myQuery 按 KEY_ID 排序),处理它们并最终返回迭代,让垃圾收集器摆脱以前的和已经处理过的事件,这样我就不会超过一定的内存量。

有没有使用 Spring 库(或任何库)的好方法?

干杯,瓦金沙尔。

最佳答案

我认为您的部分问题是您的查询是同时执行的,并且您得到的结果集很大,占用了内存和网络带宽。除了需要一种遍历结果集的方法之外,您还需要一种从数据库中一次一点取回结果的方法。看看this answer about lazy-loading resultsets .看起来您可以结合使用 ResultSetExtractor 设置获取大小,并可能获得所需的行为(取决于数据库)。

关于java - 从 SimpleJdbcTemplate 查询返回的大列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6614647/

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