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

问题描述 投票:0回答:2

有没有一种简单的方法可以使用 NamedParameterJdbcTemplate 在数据库中插入特定批次(例如 500 条)的记录。

.batchUpdate()
方法不将批量大小作为参数。我相信它会尝试在一批中插入任意数量的记录。下面是我的代码:

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

MemberList 可以有很多我想批量插入的记录。 在这种情况下,单批插入成员与批量插入 500 个成员相比有什么优势吗?

java spring spring-jdbc jdbctemplate batch-updates
2个回答
1
投票

不,这是不可能的。如果数据库中单个批次中可以插入的记录数有限制(例如 Oracle 的限制为 1000),则必须编写一些代码将集合分成多个具有该最大大小的集合每次都运行

batchUpdate


0
投票

@amit 我认为唯一的方法是将其包装在一个接口上,并根据所需的批量大小在内部运行一个循环,我也面临着同样的问题,我的批量更新超时> 30秒。

如果您找到了更好的解决方案,请回答您自己的问题。

© www.soinside.com 2019 - 2024. All rights reserved.