以下方法有效,但是如何收集多个MapSqlParameterSource并将它们全部插入一批?

new SimpleJdbcInsert(ds).withTableName(TABLENAME);

MapSqlParameterSource entry = new MapSqlParameterSource()
    .addValue("id", report.queryId, Types.INTEGER)
    .addValue("firstname", report.reportDate, Types.DATE)
    .addValue("age", report.completionRatio, Types.INTEGER);

insert.execute(entry);

最佳答案

幸运的是,SimpleJdbcInsert可以采用MapSqlParameterSource的数组(而不是列表)。因此,可能如下所示:

List<MapSqlParameterSource> entries = new ArrayList<>();
entries.add(entry);

MapSqlParameterSource[] array = entries.toArray(new MapSqlParameterSource[entries.size()]);
insert.executeBatch(array);

10-07 21:26