【问题标题】:Resultset in RowMapper For JdbcCursorItemReaderJdbcCursorItemReader 的 RowMapper 中的结果集
【发布时间】:2021-03-20 19:22:55
【问题描述】:

我试图了解 JdbcCursorItemReader 的工作原理。我注意到 ItemReader read() 方法最终从 JdbcCursorItemReader 调用 readCursor() 方法,我们将 complete resultset 和要读取的记录的当前位置传递给 rowMapper。 RowMapper 接口文档说我们不应该在结果集上调用 next 并且结果集参数已为 当前行 预初始化。 spring 如何以及在哪个类中进行预初始化?

JdbcCursorItemReader - 每次调用 read() 时传递完整的结果集

【问题讨论】:

    标签: spring-boot spring-batch spring-jdbc rowmapper


    【解决方案1】:

    初始化发生在JdbcCursorItemReader#openCursor。读取器负责 ResultSet 的生命周期以及将指针推进到下一行(如果有)。

    映射器被赋予了ResultSet,并且指针已经设置在当前行上,并且应该只关心数据映射。它不应更改 ResultSet(例如通过调用 Javadoc 中提到的next()),因为这是读者的责任。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 2010-12-22
      • 1970-01-01
      相关资源
      最近更新 更多