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 サイトの他の関連記事を参照してください。