1

我正在解析一个文件并创建一个字符串元素列表,这些元素将插入到我的表中。我试图设置一次插入 5 行的批量大小,但不知道如何.batchupdate.update我的代码中使用

4

1 回答 1

2

您当前正在呼叫update(String sql, SqlParameterSource paramSource)

可比较的批处理版本是batchUpdate(String sql, SqlParameterSource[] batchArgs).

所以看起来很明显,作为一个批处理,构建一个数组,然后进行调用。

final int batchSize = 5;

List<SqlParameterSource> args = new ArrayList<>();
for (ZygateEntity zygateInfo : parseData){
    SqlParameterSource source = new MapSqlParameterSource("account_name", zygateInfo.getAccountName())
            .addValue("command_name", zygateInfo.getCommandName())
            .addValue("system_name", zygateInfo.getSystemName())
            .addValue("CREATE_DT", zygateInfo.getCreateDt());
    args.add(source);
    if (args.size() == batchSize) {
        namedParameterJdbcTemplate.batchUpdate(sql, args.toArray(new SqlParameterSource[args.size()]));
        args.clear();
    }
}
if (! args.isEmpty()) {
    namedParameterJdbcTemplate.batchUpdate(sql, args.toArray(new SqlParameterSource[args.size()]));
}
于 2020-03-27T20:00:26.243 回答