Spring 使用弹簧刀';s NamedParameterJdbcTemplate以处理大型数据集

Spring 使用弹簧刀';s NamedParameterJdbcTemplate以处理大型数据集,spring,batch-processing,large-data,Spring,Batch Processing,Large Data,使用NamedParameterJdbcTemplate,当我执行查询时,它检索数百万个文档。我需要处理它们,但它们不必一次全部加载到内存中。如何在应用程序不必指定其他查询子句的情况下批量处理结果集(即不使用主键in())我认为您可以使用任何模板(SimpleJdbc、NamedJdbc或JdbcTemplate)假设您使用ResultTextRactor和RowMapper或使用任何其他分页技术以块的形式检索数据。你可以参考 < P> < /P> < P>我想考虑使用本地查询,首先订购数据,然

使用NamedParameterJdbcTemplate,当我执行查询时,它检索数百万个文档。我需要处理它们,但它们不必一次全部加载到内存中。如何在应用程序不必指定其他查询子句的情况下批量处理结果集(即不使用主键in())

我认为您可以使用任何模板(SimpleJdbc、NamedJdbc或JdbcTemplate)假设您使用ResultTextRactor和RowMapper或使用任何其他分页技术以块的形式检索数据。你可以参考


< P> < /P> < P>我想考虑使用本地查询,首先订购数据,然后使用某种分页关键字作为“代码>顶部、限制、RONNUM < /代码>(取决于您的数据库),以基于页返回数据块,将信息带到应用程序中增加网络流量,我相信数据库可以有效地完成这项任务

有一个很好的spring批处理模块,允许您使用

<bean id="cmrProcessReader" class="org.springframework.batch.item.database.JpaPagingItemReader" scope="step">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
    <property name="queryString" value="SELECT cmr FROM CmrRequestEntity cmr where cmr.errorMessage is null and cmr.onThread = 0 and cmr.processed = 0 " />
    <property name="pageSize" value="10" /> 
</bean>

<>但是我相信你没有使用JPA,所以考虑使用本地查询。