有没有一种简便的方法可以使用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个批次,在单个批次中插入成员有什么优势吗?
答案 0 :(得分:1)
不,这不可能。如果您可以在数据库的单个批次中插入的记录数有限制(例如,Oracle的限制为1000个),则您必须编写一些内容,将您的集合分解为多个最大大小的集合并每次运行batchUpdate
。