如何从数据库中获取插入ID?春天的靴子

时间:2017-09-23 17:18:56

标签: java postgresql spring-boot

我正在尝试从postgres数据库获取插入ID。我的代码现在看起来像:

String sql = "INSERT INTO ACCOUNT (name) VALUES (?);";
        jdbcTemplate.update(sql, account.name);

id自动生成。

我应该如何更改此代码,它会返回插入帐户的行ID?

1 个答案:

答案 0 :(得分:0)

您可以使用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());
 }  
}