ホームページ > データベース > mysql チュートリアル > JDBC で INSERT 操作後に自動生成された ID を取得するにはどうすればよいですか?

JDBC で INSERT 操作後に自動生成された ID を取得するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-23 18:53:10
オリジナル
845 人が閲覧しました

How to Retrieve Auto-Generated IDs After an INSERT Operation in JDBC?

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 がデータベースまたはドライバーでサポートされていない場合は、データベース固有のクエリが必要です。

  • Oracle: CallableStatement 句を含む RETURNING を使用するか、INSERT の後に SELECT CURRVAL(sequencename) クエリを実行します。
  • MySQL: 最近挿入された ID を取得するには、SELECT LAST_INSERT_ID() を使用します。

JDBC ドライバーの互換性:

RETURN_GENERATED_KEYS のサポートは JDBC ドライバーによって異なる場合があることに注意してください。ドライバーの機能を確認するには、ドライバーのドキュメントを参照してください。 古いドライバーでは別の方法が必要になる場合があります。

以上がJDBC で INSERT 操作後に自動生成された ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート