Lors de l'utilisation de JDBC brut, il est possible de paramétrer un PreparedStatement
comme suit :
PreparedStatement statement = connection.prepareStatement(someSQLString);
String someString = getSomeString();
Integer int = getSomeInteger();
statement.setString(1, someString);
statement.setLong(2, 5L);
statement.setInt(3, int);
...
Ici, si someString
es null
c'est très bien - les chaînes de caractères sont nullables. Mais si getSomeInteger()
retours null
Nous avons un problème.
PreparedStatement#setInt(int,int)
définit une primitive int
comme valeur, et ne peut donc pas être null
.
Cependant, il est parfaitement plausible que je veuille que la valeur de la troisième colonne ci-dessus soit null
pour ce disque particulier. Après tout, tous les SGBDR avec lesquels j'ai travaillé autorisent les champs numériques (INT, LONG, etc.) à être NULLABLES...
Quelle est donc la solution ?