Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Dapatkan ID Dijana Auto Selepas INSERT dalam JDBC?

Bagaimana untuk Dapatkan ID Dijana Auto Selepas INSERT dalam JDBC?

DDD
DDDasal
2025-01-23 18:57:10117semak imbas

How to Retrieve the Auto-Generated ID After an INSERT in JDBC?

Mendapatkan semula ID Dijana Auto dalam JDBC

Panduan ini menunjukkan cara untuk mendapatkan ID yang dijana secara automatik selepas operasi INSERT dalam persekitaran JDBC.

Langkah:

  1. Sediakan Penyata: Cipta PreparedStatement dan dayakan secara eksplisit pengambilan kunci yang dijana menggunakan Statement.RETURN_GENERATED_KEYS.

    <code class="language-java">PreparedStatement statement = connection.prepareStatement(SQL_INSERT, Statement.RETURN_GENERATED_KEYS);</code>
  2. Laksanakan INSERT: Laksanakan pernyataan yang disediakan untuk memasukkan data anda ke dalam pangkalan data.

    <code class="language-java">int affectedRows = statement.executeUpdate();</code>
  3. Dapatkan Kekunci Dijana: Gunakan statement.getGeneratedKeys() untuk mendapatkan ResultSet yang mengandungi kunci yang dijana. Lajur pertama ResultSet ini biasanya akan menyimpan ID yang baru dijana.

    <code class="language-java">try (ResultSet generatedKeys = statement.getGeneratedKeys()) {
        if (generatedKeys.next()) {
            user.setId(generatedKeys.getLong(1));
        }
    }</code>
  4. Pengendalian Pengecualian: Balut kod JDBC anda dalam blok try-catch untuk mengendalikan potensi SQLExceptions.

    <code class="language-java">try {
        // JDBC code from steps 1-3
    } catch (SQLException e) {
        // Handle the exception appropriately (e.g., log the error, throw a custom exception)
    }</code>

Pertimbangan Penting:

Tingkah laku Statement.getGeneratedKeys() boleh menjadi pangkalan data dan pemacu JDBC khusus. Pastikan pemandu anda menyokong fungsi ini dan pangkalan data anda dikonfigurasikan untuk menjana ID secara automatik.

Atas ialah kandungan terperinci Bagaimana untuk Dapatkan ID Dijana Auto Selepas INSERT dalam JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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