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>
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!