如何从数据库中获取插入ID?春季启动
问题描述:
我想从postgres数据库中获取插入ID。我的代码现在看起来像:如何从数据库中获取插入ID?春季启动
String sql = "INSERT INTO ACCOUNT (name) VALUES (?);";
jdbcTemplate.update(sql, account.name);
id是自动生成的。
我应该如何更改此代码,它会返回插入帐户的行ID?
答
您可以使用SimpleJdbcInsert插入值并从操作中获取生成的密钥。
public class JdbcActorDao implements ActorDao {
private JdbcTemplate jdbcTemplate;
private SimpleJdbcInsert insertActor;
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
this.insertActor = new SimpleJdbcInsert(dataSource)
.withTableName("t_actor")
.usingGeneratedKeyColumns("id");
}
public void add(Actor actor) {
Map<String, Object> parameters = new HashMap<String, Object>(2);
parameters.put("first_name", actor.getFirstName());
parameters.put("last_name", actor.getLastName());
Number newId = insertActor.executeAndReturnKey(parameters);
actor.setId(newId.longValue());
}
}
看起来像[this](https://stackoverflow.com/a/16061409/7940179)答案可能会帮助你 – EmberTraveller