[解決済み] MySQL & Java - 最後に挿入された値のIDを取得する (JDBC) [重複].
質問
重複の可能性があります。
どのようにJDBCで挿入IDを取得するには?
こんにちは、私はJavaを介してデータベースに接続するためにJDBCを使用しています。
さて、私はいくつかの挿入クエリを実行し、私は最後に挿入された値のidを取得する必要があります(したがって、後に
stmt.executeUpdate
).
のようなものは必要ない。
SELECT id FROM table ORDER BY id DESC LIMIT 1
のようなものは必要ありません。
私はただ、最後の挿入に関連するidを取得する必要があります(ステートメントの私のインスタンスについて)。
私はこれを試しましたが、それはJDBCで動作しないようです。
public Integer insertQueryGetId(String query) {
Integer numero=0;
Integer risultato=-1;
try {
Statement stmt = db.createStatement();
numero = stmt.executeUpdate(query);
ResultSet rs = stmt.getGeneratedKeys();
if (rs.next()){
risultato=rs.getInt(1);
}
rs.close();
stmt.close();
} catch (Exception e) {
e.printStackTrace();
errore = e.getMessage();
risultato=-1;
}
return risultato;
}
実際には、毎回
risultato = -1
と表示され
java.sql.SQLException: Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate() or Connection.prepareStatement().
どのように私はこの問題を修正することができますか?ありがとうスタックオーバーフローの人々 :)
どのように解決するのですか?
変更するだけでは?
numero = stmt.executeUpdate(query);
になります。
numero = stmt.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
JDBCのドキュメントを見てみましょう。
Statement
インターフェースのドキュメントを見てください。
アップデート
: どうやらこの回答について多くの混乱があるようですが、私の推測では、混乱している人々は、質問された文脈でそれを読んでいないのだと思います。OP が彼の質問で提供したコードを、私が提案している 1 行 (6 行目) に置き換えれば、すべてが動作します。その
numero
変数はまったく無関係で、その値が設定された後は決して読み込まれません。
関連
-
java 365*1000*60*60*24 計算問題
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ブートレイヤーの初期化中にエラーが発生しました java.lang.module.FindException: モジュールが見つかりません
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
API の戻り値を処理するために ResponseEntity を使用する
-
Java基礎編 - オブジェクト指向
-
Java Runtime Environmentを継続するためのメモリが不足しています。
-
Java:未解決コンパイル問題の解決方法
-
Java の double データ型における 0.0 と -0.0 の問題
-
Zipファイルの圧縮・解凍にantを使用する
-
[解決済み】JDBCで挿入IDを取得する方法は?