Spesifikasi jdbc mengatakan hal berikut tentang kode kembali pembaruan batch:
0 atau lebih besar — perintah berhasil diproses dan nilainya adalah jumlah pembaruan yang menunjukkan jumlah baris dalam database yang terpengaruh oleh eksekusi perintahBab 14 Pembaruan Batch 121
Pernyataan.SUCCESS_NO_INFO — perintah berhasil diproses, tetapi jumlah baris yang terpengaruh tidak diketahui
Pernyataan.SUCCESS_NO_INFO didefinisikan sebagai -2, jadi hasil Anda mengatakan semuanya bekerja dengan baik, tetapi Anda tidak akan mendapatkan informasi tentang jumlah kolom yang diperbarui.
Dokumentasi oracle menyatakan:
• Untuk kumpulan pernyataan yang telah disiapkan, tidak mungkin untuk mengetahui jumlah baris yang terpengaruh dalam database oleh setiap pernyataan individu dalam kumpulan tersebut. Oleh karena itu, semua elemen array memiliki nilai -2. Menurut spesifikasi JDBC 2.0, nilai -2 menunjukkan bahwa operasi berhasil tetapi jumlah baris yang terpengaruh tidak diketahui.
• Untuk kumpulan pernyataan umum, larik berisi jumlah pembaruan aktual yang menunjukkan jumlah baris yang terpengaruh oleh setiap operasi. Jumlah pembaruan aktual hanya dapat diberikan dalam kasus pernyataan umum dalam implementasi Oracle batching standar.
•Untuk kumpulan pernyataan yang dapat dipanggil, server selalu mengembalikan nilai 1 sebagai jumlah pembaruan, terlepas dari jumlah baris yang terpengaruh oleh setiap operasi.
Jadi sepertinya jika Anda membutuhkan jumlah pembaruan, Anda tidak dapat menggunakan PreparedStatement
s tetapi harus kembali ke Statement
biasa s.