Из интерфейса ItemWriter, который реализован JdbcBatchItemWriter
public interface ItemWriter<T> {
void write(List<? extends T> items) throws Exception;
}
Он думает, что предназначен для пакетного обновления, но что, если элемент, который я использовал для ввода, уже является списком или списком, мне нужно написать собственный JdbcItemWriter, или встроенный JdbcBatchItemWriter мог бы выполнить эту работу?
Встроенный JdbcBatchItemWriter
будет работать. Вы - элемент типа List
. В этом нет ничего плохого. Вам просто нужно реализовать соответствующий ItemPreparedStatementSetter
или ItemSqlParameterSourceProvider
самостоятельно, чтобы сопоставить элементы List
со значениями в SQL.
Неа. Использование объекта домена содержит список.
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
}
}
}
ItemPreparedStatementSetter
, как написатьList<List<String>>
используяItemPreparedStatementSetter
илиJdbcBatchItemWriter
? Если да, можете ли вы поделиться, как вы это сделали?