ホームページ >データベース >mysql チュートリアル >JDBC で INSERT 操作後に自動生成された ID を取得するにはどうすればよいですか?
JDBC での INSERT 後の自動生成 ID の取得
JDBC では、特に自動インクリメントキーまたはシーケンスを使用する場合、INSERT ステートメントによって生成された ID を取得することが不可欠です。 このガイドでは、これを実現するためのいくつかの方法について概説します。
Statement.RETURN_GENERATED_KEYS
の使用:
最も簡単なアプローチは、JDBC の Statement.RETURN_GENERATED_KEYS
フラグを利用します。 PreparedStatement
または CallableStatement
とともに使用すると、新しく生成されたキーを返すようにドライバーに指示されます。
例:
<code class="language-java">PreparedStatement statement = connection.prepareStatement(SQL_INSERT, Statement.RETURN_GENERATED_KEYS); // ... execute the INSERT statement ... ResultSet generatedKeys = statement.getGeneratedKeys(); if (generatedKeys.next()) { long insertId = generatedKeys.getLong(1); // Get the first generated key }</code>
データベース固有のソリューション:
RETURN_GENERATED_KEYS
がデータベースまたはドライバーでサポートされていない場合は、データベース固有のクエリが必要です。
CallableStatement
句を含む RETURNING
を使用するか、INSERT の後に SELECT CURRVAL(sequencename)
クエリを実行します。SELECT LAST_INSERT_ID()
を使用します。JDBC ドライバーの互換性:
RETURN_GENERATED_KEYS
のサポートは JDBC ドライバーによって異なる場合があることに注意してください。ドライバーの機能を確認するには、ドライバーのドキュメントを参照してください。 古いドライバーでは別の方法が必要になる場合があります。
以上がJDBC で INSERT 操作後に自動生成された ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。