JavaでSEQオブジェクトで割り当てられたキーを取得する

Javaでインサートする時に、プライマリキーがSEQオブジェクトで割り当てられたとします。

その値を取得して、同じサロゲートキーを使って別のテーブルにもインサートしたいという場合があります。

このような場合はgetGeneratedKeysメソッドを使用してプライマリキーを取得できます。

以下、例です。

PreparedStatement ps = null;
ResultSet rs = null;
try{
  ps = conn.preparedStatement(strSql,new String[]{"id"});// 第二引数にプライマリキー列名を指定する
  ps.executeUpdate();
  rs = ps.getGeneratedKeys();
  rs.next();
  long seq = rs.getLong(1);// プライマリキーを取得

但し、セレクトインサートでは、executeUpdateメソッドでエラーとなるため、普通のインサート文でないといけません。

コメント

タイトルとURLをコピーしました