ホームページ >データベース >mysql チュートリアル >Java でプリペアド ステートメントを使用してデータを挿入した後に自動インクリメント ID を取得するにはどうすればよいですか?

Java でプリペアド ステートメントを使用してデータを挿入した後に自動インクリメント ID を取得するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-17 11:34:01795ブラウズ

How can I retrieve an auto-increment ID after inserting data using Prepared Statements in Java?

Java で準備済みステートメントを使用した自動インクリメント ID の取得

自動インクリメント主キーを持つテーブルにデータを挿入する場合、これが望ましい場合があります。新しいレコードに対して生成された ID を取得します。 AutoGeneratedKeys のアプローチは標準のステートメント オブジェクトでは機能しますが、プリペアド ステートメントでは直接使用できません。

挿入操作でのプリペアド ステートメントの使用

プリペアド ステートメントを使用すると、次の操作を実行できます。動的パラメータを使用した SQL クエリ。プリペアド ステートメントでデータを挿入するには、次の形式を使用します。

String sql = "INSERT INTO table (column1, column2) values(?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);

executeUpdate() を呼び出す前にパラメータ値を設定すると、同じクエリを異なる値で複数回実行できます。

準備されたステートメントを使用した自動インクリメント ID の取得

準備されたステートメントによって生成された自動インクリメント ID を取得するには、準備されたステートメントの作成時にオプションとして Statement.RETURN_GENERATED_KEYS を指定する必要があります。

PreparedStatement stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

クエリの実行後、次のコードを使用して自動インクリメント ID を取得できます。

if (returnLastInsertId) {
   ResultSet rs = stmt.getGeneratedKeys();
   rs.next();
   auto_id = rs.getInt(1);
}

コードにこのわずかな変更を加えることで、自動インクリメント ID を正常に取得できます。挿入操作に準備されたステートメントを使用する場合の ID。

以上がJava でプリペアド ステートメントを使用してデータを挿入した後に自動インクリメント ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。