Jawaban revisi ke-2 Bozho hampir tetapi tidak cukup sampai di sana. Itu memang membawa saya ke jawabannya.
Mengambil contoh kode yang saya mulai dengan kami berakhir dengan:
CallableStatement proc = connection.prepareCall("{ ? = call dbo.mySproc() }");
proc.registerOutParameter(1, Types.INTEGER);
proc.execute();
int returnValue = proc.getInt(1);
Potongan kunci di sini adalah "? =" di depan "panggilan" di prepareCall
fungsi yang menyiapkan tempat untuk nilai yang dikembalikan dan registerOutputParameter
. Itu harus didaftarkan sebagai Integer, karena nilai yang dikembalikan selalu berupa int (setidaknya di SQL Server, mungkin berbeda di DB lain). Karena itu Anda harus mendapatkannya menggunakan getInt
. Saya menguji metode ini dan berhasil.