You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Batch中JdbcCursorItemReader无法查询SQL数据库数据,但JdbcTemplate可正常获取的问题求助

Spring Batch中JdbcCursorItemReader无法查询SQL数据库数据,但JdbcTemplate可正常获取的问题求助

大家好,我最近碰到个Spring Batch的棘手问题,想来请教下各位:

我用JdbcCursorItemReader从SQL数据库查数据的时候,它完全没进入RowMapper的mapRow方法,而且控制台连半条错误日志都没输出!但诡异的是,用一模一样的查询语句,JdbcTemplate却能顺顺利利从数据库里拿到数据。

我的配置类代码大概是这样的(可能有点截断):

@EnableBatchProcessing
@Configuration
public class config {

    @Autowired
    DataSource datasource;

    @Bean
    public Job job(JobRepository jobRepository, Step step) {
        return new JobBuilder("employeeData", jobRepository)
        // 这里的代码好像没写完
    }
}

我现在一头雾水,有没有小伙伴能给我一些排查方向?比如:

  • 是不是JdbcCursorItemReader的配置漏了什么?比如有没有正确绑定RowMapper,或者SQL语句有没有正确设置?
  • Job和Step的配置是不是没把这个reader关联上?会不会Step根本没触发这个reader执行查询?
  • 事务方面会不会有问题?JdbcCursorItemReader依赖事务,是不是Spring Batch的事务管理器配置不对?
  • 要不要开更详细的日志?比如把Spring Batch和JDBC的日志级别调到DEBUG,看看有没有隐性的异常被吞了?
  • 会不会是两个组件用的数据源不一样?虽然我@Autowired了DataSource,但会不会存在多个DataSource Bean导致两者用的不是同一个库?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:24:31