我想知道,如何使用jdbctemplate获取插入数据的Id?我可以在Php中做到这一点,但我不知道如何在java中做到这一点。 我搜索了文档,发现了executeAndReturnKey(..)但我的jdbctemplate不识别这个类(只有.execute())。
请。帮助我
答案 0 :(得分:4)
您可以将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();
答案 1 :(得分:2)
例如,
SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource)
.withTableName("EMPLOYEE")
.usingGeneratedKeyColumns("ID");
Number id = simpleJdbcInsert.executeAndReturnKey(parameters);
System.out.println("Generated id - " + id.longValue());