今天项目中遇到了需要返回插入数据的id 的一项业务(数据库id自动增长),数据库连接使用spring jdbctemplate,网上查了一下发现结合spring使用的比较少,所以记录下我的实现方法:
final Star star = getStarInfo();
KeyHolder keyHolder = new GeneratedKeyHolder();
row = this.jt.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection con)
throws SQLException {
PreparedStatement ps = con.prepareStatement("insert into `star`(`stype`,`name`) values (?,?)",
Statement.RETURN_GENERATED_KEYS);
ps.setInt(1, star.getStype());
ps.setString(2, star.getName());
return ps;
}
}, keyHolder);
// 获取插入记录的id
Long generatedId = keyHolder.getKey().longValue();
这里的generatedId 就是刚刚插入那条记录的ID. 注意Statement.RETURN_GENERATED_KEYS一定要加上.

本文介绍了一种在Spring框架中使用SpringJdbcTemplate进行数据库操作时,如何获取刚插入记录的ID的方法。通过使用KeyHolder及PreparedStatementCreator实现,并强调了Statement.RETURN_GENERATED_KEYS的重要性。
1236

被折叠的 条评论
为什么被折叠?



