@Bean
public JdbcBatchItemWriter<MyObject[]> jdbcBatchItemWriter(){
JdbcBatchItemWriter<MyObject[]> itemWriter = new
JdbcBatchItemWriter<MyObject[]>();
itemWriter.setSql("INSERT INTO ITEM (ID, DESCRIPTION) VALUES
(?, ?)");
itemWriter.setDataSource(dataSource);
itemWriter.setItemSqlParameterSourceProvider(new
BeanPropertyItemSqlParameterSourceProvider<MyObject[]>());
return itemWriter;
}
我有一个名为MyObject
的对象数组,我想将其插入数据库。
MyObject
的每个下标表示从数据库读取的行的列。
例如,对于此实例,MyObject [0]将为列ID
,而MyObject[1]
将为列DESCRIPTION
。
我希望能够传入数组对象的下标,以便在我的数据库中插入值。喜欢这个
itemWriter.setSql("INSERT INTO ITEM (ID, DESCRIPTION) VALUES (0, 1)");
我应该怎样解决这个问题?
答案 0 :(得分:0)
尝试使用命名参数。在填充参数的同时,给出如下值:
final class MyObjectPreparedStatementSetter implements ItemPreparedStatementSetter<MyObject> {
@Override
public void setValues(Myobject myObject,
PreparedStatement preparedStatement) throws SQLException {
preparedStatement.setString(1, myObject[0]);
preparedStatement.setString(2, myObject[1]);
preparedStatement.setString(3, myObject[2]);
}
}