gpt4 book ai didi

java - Spring JDBCTemplate ResultSetExtractor 和 Spring Batch ItemReader 之间的区别

转载 作者:行者123 更新时间:2023-11-29 21:01:31 34 4
gpt4 key购买 nike

我确实有一个很大的 MySQL 数据库表(超过 100 万条记录)。我需要读取所有数据并使用java语言对其进行一些处理。

我想确保 java 进程不应该通过将整个结果集放入内存来消耗更多内存。

在查看基于游标的实现时,我发现了一些选项,

  1. 使用 Spring JDBCTemplate 覆盖 ResultSetExtractor 或 RowCallbackHandler 并按顺序读取行。
  2. 使用 Spring Batch JDBCCursorItemReader/JDBCPagingItemReader 的其他选项。

有人可以解释一下这两个选项有什么区别吗?

最佳答案

如果您需要任何批处理,选项 1 似乎在应用程序端进行一些内部批处理会更好。

JdbcCursorItemReader 打开一个新连接,因此不会参与您的应用程序事务。请参阅 API:http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/item/database/AbstractCursorItemReader.html该 API 是 Spring Batch 的一部分。如果您正在编写批处理应用程序,那么它将非常适合。查看 Spring 批处理

关于java - Spring JDBCTemplate ResultSetExtractor 和 Spring Batch ItemReader 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37185701/

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