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;
}
前もって感謝します。