ホームページ > データベース > mysql チュートリアル > JDBC を使用して挿入 ID を取得するにはどうすればよいですか?

JDBC を使用して挿入 ID を取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-23 19:02:13
オリジナル
556 人が閲覧しました

How to Retrieve the Insert ID Using JDBC?

JDBC を使用した挿入 ID の取得: 包括的なガイド

挿入を伴うデータベース操作では、多くの場合、新しく挿入されたレコードの ID を取得することが重要です。この記事では、JDBC を使用してこれを実現する方法について、特に Microsoft SQL Server に焦点を当てた詳細なガイドを提供します。

挿入 ID 取得の JDBC サポート

JDBC は、Statement#getGeneratedKeys() メソッドを通じて新しく挿入されたレコードの ID を取得する便利なメカニズムを提供します。このメソッドは、挿入された列に自動生成された値が含まれている場合にのみ使用できます。生成されたキーの取得を有効にするには、Statement.RETURN_GENERATED_KEYS 作成ステートメントを使用する必要があります。

Java サンプル コード

次のコード スニペットは、Java で JDBC を使用して挿入 ID を取得する方法を示しています。

<code class="language-java">public void create(User user) throws SQLException {
    try (
        Connection connection = dataSource.getConnection();
        PreparedStatement statement = connection.prepareStatement(SQL_INSERT,
            Statement.RETURN_GENERATED_KEYS);
    ) {
        statement.setString(1, user.getName());
        statement.setString(2, user.getPassword());
        statement.setString(3, user.getEmail());

        int affectedRows = statement.executeUpdate();
        if (affectedRows == 0) {
            throw new SQLException("创建用户失败,没有影响的行。");
        }

        try (ResultSet generatedKeys = statement.getGeneratedKeys()) {
            if (generatedKeys.next()) {
                user.setId(generatedKeys.getLong(1));
            } else {
                throw new SQLException("创建用户失败,未获得ID。");
            }
        }
    }
}</code>
ログイン後にコピー

JDBC 実装のニュアンス

Statement#getGeneratedKeys() の有効性は、使用される JDBC ドライバーによって異なる場合があることに注意することが重要です。最新バージョンではこの機能がサポートされていますが、例外が存在する可能性があります。たとえば、Oracle の JDBC ドライバーでは、RETURNING 句を伴う CallableStatement の使用が必要な場合があります。

Oracle の代替手段

Oracle データベースには代替手段が存在します。 1 つの方法は、RETURNING 句とともに CallableStatement を使用することです。もう 1 つの方法は、INSERT 操作の後に SELECT CURRVAL(sequencename) クエリを実行して、最後に生成されたキーを取得することです。

要約すると、JDBC は、レコードの挿入時に挿入 ID を取得するための信頼できるメカニズムを提供します。 Statement#getGeneratedKeys() を活用することで、開発者は後続の処理やデータベース管理操作のために新しく生成された ID を効率的に取得できます。

以上がJDBC を使用して挿入 ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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