【问题标题】:Limit number of total records that a JdbcPagingItemReader can read in a Spring Batch project限制 JdbcPagingItemReader 在 Spring Batch 项目中可以读取的总记录数
【发布时间】:2019-06-19 16:05:43
【问题描述】:

我正在尝试读取具有数百万条记录的数据库表,因此我正在使用 JdbcPagingItemReader。

但是,我目前处于测试阶段,我正在尝试限制使用 JdbcPagingItemReader 可以读取的总记录数。 我知道这应该很简单,它只是隐藏在某个地方。

这就是我的读者的样子:

   @Bean (name = "metadataItemReader")
   public ItemReader<DocumentMetadata> itemReader( @Value( "${count}" ) int count ) {

      JdbcPagingItemReader<DocumentMetadata> reader = new JdbcPagingItemReader<>();
      final SqlPagingQueryProviderFactoryBean sqlPagingQueryProviderFactoryBean = new SqlPagingQueryProviderFactoryBean();
      sqlPagingQueryProviderFactoryBean.setDataSource(dataSource);
      sqlPagingQueryProviderFactoryBean.setSelectClause("select id, file_path, file_name, extension, created_by, TO_CHAR(create_date, 'yyyy-mm-dd hh24:mi:ss') as create_date");
      sqlPagingQueryProviderFactoryBean.setFromClause("from document_metadata");
      //sqlPagingQueryProviderFactoryBean.l
      sqlPagingQueryProviderFactoryBean.setSortKey("id");
      try {
         reader.setQueryProvider(sqlPagingQueryProviderFactoryBean.getObject());
      } catch (Exception e) {
         log.error(e.getMessage());
      }
      reader.setDataSource(dataSource);
      reader.setPageSize(10);
      reader.setRowMapper( new MetadataRowMapper() );
      return reader;
   }

【问题讨论】:

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


    【解决方案1】:

    JdbcPagingItemReader 是一个 AbstractItemCountingItemStreamItemReader bean,它有一个 maxItemCount 属性,您可以设置它以实现您想要的。

    【讨论】:

    • 谢谢!这正是我所需要的。
    猜你喜欢
    • 2018-03-29
    • 2014-09-05
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 2018-01-21
    • 1970-01-01
    • 2018-01-25
    相关资源
    最近更新 更多