Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan ID Sisipan Menggunakan JDBC?

Bagaimana untuk Mendapatkan ID Sisipan Menggunakan JDBC?

Mary-Kate Olsen
Lepaskan: 2025-01-23 19:02:13
asal
555 orang telah melayarinya

How to Retrieve the Insert ID Using JDBC?

Mendapatkan semula ID Sisipan menggunakan JDBC: Panduan Komprehensif

Dalam operasi pangkalan data yang melibatkan sisipan, selalunya penting untuk mendapatkan ID rekod yang baru dimasukkan. Artikel ini menyediakan panduan terperinci tentang cara mencapainya menggunakan JDBC, memfokuskan secara khusus pada Microsoft SQL Server.

Sokongan JDBC untuk pengambilan ID sisipan

JDBC menyediakan mekanisme yang mudah untuk mendapatkan ID rekod yang baru dimasukkan melalui kaedah Statement#getGeneratedKeys(). Kaedah ini hanya boleh digunakan jika lajur yang dimasukkan mengandungi nilai yang dijana secara automatik. Untuk membolehkan mendapatkan semula kunci yang dijana, pernyataan penciptaan Statement.RETURN_GENERATED_KEYS mesti digunakan.

Kod contoh Java

Coretan kod berikut menunjukkan cara untuk mendapatkan ID sisipan menggunakan JDBC dalam Java:

<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>
Salin selepas log masuk

Nuansa pelaksanaan JDBC

Adalah penting untuk ambil perhatian bahawa keberkesanan Statement#getGeneratedKeys() mungkin berbeza-beza bergantung pada pemacu JDBC yang digunakan. Walaupun versi terkini menyokong ciri ini, pengecualian mungkin wujud. Sebagai contoh, pemacu JDBC Oracle mungkin memerlukan penggunaan RETURNING dengan klausa CallableStatement.

Alternatif Oracle

Untuk pangkalan data Oracle, alternatif wujud. Satu cara ialah menggunakan RETURNING dengan klausa CallableStatement. Cara lain ialah melakukan pertanyaan SELECT CURRVAL(sequencename) selepas operasi INSERT untuk mendapatkan kunci yang dijana paling baru.

Ringkasnya, JDBC menyediakan mekanisme yang boleh dipercayai untuk mendapatkan ID sisipan apabila rekod dimasukkan. Dengan memanfaatkan Statement#getGeneratedKeys(), pembangun boleh mendapatkan ID yang baru dijana dengan cekap untuk pemprosesan berikutnya atau operasi pengurusan pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Sisipan Menggunakan JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan