JdbcBatchItemWriter是否不支持输入项作为List <map>?</map>

时间:2014-09-25 09:45:27

标签: java spring spring-batch

从JdbcBatchItemWriter实现的ItemWriter接口

public interface ItemWriter<T> {
    void write(List<? extends T> items) throws Exception;
}

它认为是专为批量更新而设计的,但是如果我用作输入的项目已经是List或List,我是否必须编写自己的JdbcItemWriter,或者内置的JdbcBatchItemWriter可以完成工作呢?

2 个答案:

答案 0 :(得分:0)

不。 使用域对象包含列表。

class MyDomainObject {
  List<Item> items = new ArrayList<Item>();
}

T替换产生

public class MyItemWrite implement ItemWrite<MyDomainObject> {
  public void write(List<? extends MyDomainObject> items) throws Exception {
    for(MyDomainObject o : items)
    {
      // Perform o.items write
    }
  }
}

答案 1 :(得分:0)

内置的JdbcBatchItemWriter会有效。您的项目属于List类型。这没什么不对。您只需要自己实现相应的ItemPreparedStatementSetterItemSqlParameterSourceProvider,即可将List的元素映射到SQL中的值。