【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;
}