2017-09-23 19 views
0

私はpostgresデータベースから挿入IDを取得しようとしています。私のコードは次のようになります:データベースから挿入IDを取得する方法は?スプリングブート

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

idが自動的に生成されます。

このコードを変更すると、挿入されたアカウントの行IDが返されます。

+0

[これ](https://stackoverflow.com/a/16061409/7940179)答えがあなたに役立つかもしれません – EmberTraveller

答えて

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()); 
} 
} 
関連する問題