Spring batch spring批处理中的Temp表

Spring batch spring批处理中的Temp表,spring-batch,Spring Batch,由于多个表联接,我的阅读器中的查询需要很长时间才能获取结果。我正在考虑拆分查询联接的选项,如果可能的话,可以使用临时表。这是一个可行的解决方案吗?spring batch是否支持在读卡器、处理器和写入器之间使用临时表?是的,这是可能的。您应该为您的读卡器、写卡器和处理器使用相同的数据源实例 例如: @Component public class DataSourceDao{ DataSource dataSource; public DataSource getDataSour

由于多个表联接,我的阅读器中的查询需要很长时间才能获取结果。我正在考虑拆分查询联接的选项,如果可能的话,可以使用临时表。这是一个可行的解决方案吗?spring batch是否支持在读卡器、处理器和写入器之间使用临时表?

是的,这是可能的。您应该为您的读卡器、写卡器和处理器使用相同的数据源实例

例如:

@Component

public class DataSourceDao{

  DataSource dataSource; 


  public DataSource getDataSource() {
        return dataSource;
    }
    @Autowired
    public void setDataSource(DataSource dataSource) {
        this.dataSource = dataSource;
    }

}
读者:

 public class MyReader implements ItemReader<POJO_CLASS> {
      @Autowired
      DataSourceDao dataSource; 

      @Override
           JdbcCursorItemReader<POJO_CLASS> reader= new 
            JdbcCursorItemReader<>();

      public <POJO_CLASS> read() throws Exception, UnexpectedInputException, 
                     ParseException, NonTransientResourceException {

           reader.setDataSource(dataSource.getDataSource());
          // Implement your read logic

      }

}
公共类MyReader实现ItemReader{
@自动连线
数据源DAO数据源;
@凌驾
JdbcCursorItemReader=新建
JdbcCursorItemReader();
public read()引发异常,未预料的PutException,
ParseException,非TransientResourceException{
reader.setDataSource(dataSource.getDataSource());
//实现您的读取逻辑
}
}
作者:

public class YourWriter implements ItemWriter<POJO_CLASS> {

  JdbcBatchItemWriter<POJO_CLASS> writer= new JdbcBatchItemWriter<>();

   @Autowired
  DataSourceDao dataSource; 

 void write(List<? extends POJO_CLASS> POJO)
  {
     writer.setDataSource(dataSource.getDataSource());
     <Your logics...> 

  }
公共类YourWriter实现ItemWriter{
JdbcBatchItemWriter writer=新的JdbcBatchItemWriter();
@自动连线
数据源DAO数据源;

void write(列表)你找到解决方法了吗?我也想使用临时表。我应该在步骤之间使用相同的连接。如何?