ホームページ >データベース >mysql チュートリアル >JDBC を使用した後に挿入 ID を取得するにはどうすればよいですか?
JDBC を使用した新しく挿入されたレコード ID へのアクセス
このガイドでは、JDBC を使用してデータベース レコードを挿入した後に自動生成された ID を取得する方法について詳しく説明します。 データベース システムに応じて、いくつかのアプローチが存在します。
Statement#getGeneratedKeys()
自動生成キーをサポートするデータベースの場合、Statement#getGeneratedKeys()
メソッドは簡単な解決策を提供します。このメソッドは、生成されたキーを含む ResultSet
を返します。 重要なのは、ステートメントを準備するときに Statement.RETURN_GENERATED_KEYS
を指定して、これらのキーを返すように JDBC ドライバーに指示する必要があります。
具体的な例:
<code class="language-java">try ( Connection connection = dataSource.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_INSERT, Statement.RETURN_GENERATED_KEYS); ) { // Set statement parameters // ... int affectedRows = statement.executeUpdate(); if (affectedRows == 0) { throw new SQLException("Record insertion failed, no rows affected."); } try (ResultSet generatedKeys = statement.getGeneratedKeys()) { if (generatedKeys.next()) { user.setId(generatedKeys.getLong(1)); } else { throw new SQLException("Record insertion failed, no ID obtained."); } } }</code>
データベース固有の代替手段
Statement#getGeneratedKeys()
はすべての JDBC ドライバーで普遍的にサポートされているわけではないことに注意することが重要です。 特定のデータベース システムには代替方法が存在します:
CallableStatement
句を含む RETURNING
を使用するか、挿入操作の後に SELECT CURRVAL(sequencename)
クエリを実行します。Statement#getGeneratedKeys()
をサポートします。Statement#getGeneratedKeys()
.以上がJDBC を使用した後に挿入 ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。