使用NamedParameterJdbcTemplate以一定的批次大小进行批次更新

时间:2018-08-11 08:58:54

标签: java spring spring-jdbc jdbctemplate batch-updates

有没有一种简便的方法可以使用NamedParameterJdbcTemplate在特定批次(例如500个)中将记录插入数据库中。 .batchUpdate()方法不将批处理大小作为参数。我相信它会尝试在1个批处理中插入任意数量的记录。下面是我的代码:

private void insertInBatch(List<Map<String, Object>> memberList){
String query = "Insert into table (ID) values (:id)";
namedParameterJdbcTemplate.batchUpdate(query, SqlParameterSourceUtils.createBatch(memberList))
}

成员列表可以包含很多我想批量插入的记录。 在这种情况下,相对于500个批次,在单个批次中插入成员有什么优势吗?

1 个答案:

答案 0 :(得分:1)

不,这不可能。如果您可以在数据库的单个批次中插入的记录数有限制(例如,Oracle的限制为1000个),则您必须编写一些内容,将您的集合分解为多个最大大小的集合并每次运行batchUpdate