我想知道如何使用jdbctemplate获取插入的数据的ID?我可以在PHP中执行此操作,但我不知道如何在Java中执行此操作。
我搜索了文档,并找到了有关executeAndReturnKey(..)的信息,但我的jdbctemplate无法识别此类(仅.execute())。
请帮我
最佳答案
您可以将KeyHolder
与JdbcTemplate
一起使用,
KeyHolder generatedKeyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement statement = connection.prepareStatement("Your Insert/Update Query", Statement.RETURN_GENERATED_KEYS);
// set values in query
return statement;
}
}, generatedKeyHolder);
Number id = generatedKeyHolder.getKey();
// Use this Number to get id with feasible type long, int etc.
// For example,
// int myId = id.intValue();