如何在batchUpdate中使用NamedParameterJDBCTemplate时获取生成的键

时间:2018-04-07 08:25:11

标签: spring jdbctemplate

我试图了解如何执行批量插入语句(用于提高速度)并获取新创建的记录的创建主键值。

我见过KeyHolder接口,但似乎没有将它与批量更新结合起来的功能只有一次更新(出于性能原因我想避免)。

1 个答案:

答案 0 :(得分:0)

可以通过扩展JdbcTemplate并添加一个方法,该方法是batchUpdate方法的精确副本并采用Type KeyHolder的额外参数,在ps.executeBatch()之后的PreparedStatementCallback中,您应该调用ResultSet keys = ps。 getGeneratedKeys()并在KeyHolder中提取生成的键和存储主题,但不保证ps.getGeneratedKeys()将返回依赖于数据库的值