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