【发布时间】:2022-11-03 08:50:32
【问题描述】:
我正在努力Spring Batch 和 Spring Jdbc我在哪里使用NamedParameterJdbcTemplate 的batchUpdate 将记录插入数据库,一旦插入记录,我想获取所有插入记录的主键..
有没有办法获取生成的主键?
List<Person> persons = Arrays.asList(
Person.create("Dana", "Whitley", "464 Gorsuch Drive"),
Person.create("Robin", "Cash", "64 Zella Park")
);
String sql = "insert into Person (first_Name, Last_Name, Address) " +
"values (:firstName, :lastName, :address)";
List<Map<String, Object>> batchValues = new ArrayList<>(persons.size());
for (Person person : persons) {
batchValues.add(
new MapSqlParameterSource("firstName", person.getFirstName())
.addValue("lastName", person.getLastName())
.addValue("address", person.getAddress())
.getValues());
}
int[] updateCounts = namedParamJdbcTemplate.batchUpdate(sql,
batchValues.toArray(new Map[persons.size()]));
【问题讨论】:
标签: spring postgresql spring-batch spring-jdbc