見出し画像

【Java】自動採番値の取得|使えるソースメモ

javaで自動採番のセルの番号を取得するのに手間取ったので、Nextvalのシーケンス以外で生成する方法を探してみました。ソースコードを読んでみましょう。

メソッド名やクラス名は任意です。

// 自動採番取得用メソッド
       @PostConstruct
       public void init() {
           SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert((JdbcTemplate) template.getJdbcOperations());
           SimpleJdbcInsert withTableName = simpleJdbcInsert.withTableName("orders");
           insert = withTableName.usingGeneratedKeyColumns("id");  
   }

IDをセットしてインサート後に採番が振られた値をリターンします。

public Order insert(Order order) {

   // ドメインの名前とSQLの?部分があっていれば自動的に入っていく
    SqlParameterSource param = new BeanPropertySqlParameterSource(order);

   // executeAndReturnKeyが勝手にインサート文を実行してくれる
    Number key = insert.executeAndReturnKey(param);

    order.setId(key.intValue());

   return order;
}

いいなと思ったら応援しよう!