从JdbcBatchItemWriter实现的ItemWriter接口
public interface ItemWriter<T> {
void write(List<? extends T> items) throws Exception;
}
它认为是专为批量更新而设计的,但是如果我用作输入的项目已经是List或List,我是否必须编写自己的JdbcItemWriter,或者内置的JdbcBatchItemWriter可以完成工作呢?
答案 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
类型。这没什么不对。您只需要自己实现相应的ItemPreparedStatementSetter
或ItemSqlParameterSourceProvider
,即可将List
的元素映射到SQL中的值。