Bagikan melalui


Menggunakan prosedur tersimpan dengan jumlah pembaruan

Unduh driver JDBC

Untuk mengubah data dalam database SQL Server dengan menggunakan prosedur tersimpan, Driver Microsoft JDBC untuk SQL Server menyediakan kelas SQLServerCallableStatement . Dengan menggunakan kelas SQLServerCallableStatement, Anda dapat memanggil prosedur tersimpan yang memodifikasi data yang ada di database dan mengembalikan hitungan jumlah baris yang terpengaruh, juga disebut sebagai jumlah pembaruan.

Setelah Anda menyiapkan panggilan ke prosedur tersimpan dengan menggunakan kelas SQLServerCallableStatement, Anda kemudian dapat memanggil prosedur tersimpan dengan menggunakan metode execute atau executeUpdate . Metode executeUpdate akan mengembalikan nilai int yang berisi jumlah baris yang terpengaruh oleh prosedur tersimpan, tetapi metode eksekusi tidak. Jika Anda menggunakan metode eksekusi dan ingin mendapatkan jumlah baris yang terpengaruh, Anda dapat memanggil metode getUpdateCount setelah menjalankan prosedur tersimpan.

Catatan

Jika Anda ingin driver JDBC mengembalikan semua jumlah pembaruan, termasuk jumlah pembaruan yang dikembalikan oleh pemicu apa pun yang mungkin telah diaktifkan, atur properti lastUpdateCount string koneksi ke "false". Untuk informasi selengkapnya tentang properti lastUpdateCount, lihat Mengatur properti koneksi.

Sebagai contoh, buat tabel dan prosedur tersimpan berikut, dan sisipkan juga data sampel dalam database sampel AdventureWorks2022:

CREATE TABLE TestTable
   (Col1 int IDENTITY,
    Col2 varchar(50),
    Col3 int);  

CREATE PROCEDURE UpdateTestTable  
   @Col2 varchar(50),  
   @Col3 int  
AS  
BEGIN  
   UPDATE TestTable  
   SET Col2 = @Col2, Col3 = @Col3  
END;  
INSERT INTO dbo.TestTable (Col2, Col3) VALUES ('b', 10);  

Dalam contoh berikut, koneksi terbuka ke database sampel AdventureWorks2022 diteruskan ke fungsi, metode eksekusi digunakan untuk memanggil prosedur tersimpan UpdateTestTable, lalu metode getUpdateCount digunakan untuk mengembalikan hitungan baris yang terpengaruh oleh prosedur tersimpan.

public static void executeUpdateStoredProcedure(Connection con) {
    try(CallableStatement cstmt = con.prepareCall("{call dbo.UpdateTestTable(?, ?)}");) {
        cstmt.setString(1, "A");
        cstmt.setInt(2, 100);
        cstmt.execute();
        int count = cstmt.getUpdateCount();
        System.out.println("ROWS AFFECTED: " + count);
    }
    // Handle any errors that may have occurred.
    catch (SQLException e) {
        e.printStackTrace();
    }
}

Lihat juga

Menggunakan pernyataan dengan prosedur tersimpan