0

PreparedStatement を使用してデータベースにいくつかの値を挿入しましたが、その場合、最後の挿入 ID を取得できないようです。

ステートメント (以下) に使用するのと同じステートメントを使用しようとしましたが、機能しません。この場合、 .executeQuery() は引数を取ることができないと言われています。

実際、最後の挿入 ID は正確には必要ありません。影響を受ける行の数で十分ですが、どうすればそれを取得できますか? PreparedStatement の .executeUpdate() メソッドは影響を受ける行の数を返すと思っていましたが、そうではないようです。

これが方法です。

 public static int getLastInsertId(Statement stmt) throws SQLException {
  String sql = "SELECT SCOPE_IDENTITY() AS id";

  ResultSet rs = stmt.executeQuery(sql);
  int id = 0;
  while (rs.next()) {
   id = rs.getInt("id");
  }
  return id;
 }

前もって感謝します。

4

1 に答える 1

0

PreparedStatement の executeUpdate メソッドは実際に影響を受ける行の数を返します...

于 2010-11-30T15:21:19.310 に答える