Java PreparedStatement memberikan kemungkinan untuk menetapkan nilai Null secara eksplisit. Kemungkinan ini adalah:
prepStmt.setNull(parameterIndex, Types.VARCHAR);
Apakah semantik panggilan ini sama dengan saat menggunakan setType tertentu dengan parameter null?
prepStmt.setString(null);
?
java
jdbc
prepared-statement
paweloque.dll
sumber
sumber
tapi hati-hati untuk ini ....
Long nullLong = null; preparedStatement.setLong( nullLong );
-maka pengecualian pointer nol-
karena protipe itu
setLong( long )
TIDAK
bagus untuk menangkapmu eh.
sumber
Akhirnya saya melakukan tes kecil dan ketika saya memprogramnya, terlintas di benak saya, bahwa tanpa metode setNull (..) tidak akan ada cara untuk menetapkan nilai null untuk primitif Java. Untuk Objek dua arah
dan
set<ClassName>(.., null))
berperilaku sama.
sumber
Anda juga bisa mempertimbangkan untuk menggunakan
preparedStatement.setObject(index,value,type);
sumber
yang seharusnya bekerja untuk semua jenis. Meskipun dalam beberapa kasus kegagalan terjadi di sisi server, seperti: untuk SQL:
Oracle 18XE
gagal dengan tipe yang salah: diharapkanDATE
, didapatSTRING
- itu adalah kegagalan yang benar-benar valid;Intinya: mengetahui jenisnya adalah baik jika Anda menelepon
.setNull()
sumber