Java PreparedStatement offre la possibilité de définir explicitement une valeur Null. Cette possibilité est:
prepStmt.setNull(parameterIndex, Types.VARCHAR);
La sémantique de cet appel est-elle la même que lors de l'utilisation d'un setType spécifique avec un paramètre nul?
prepStmt.setString(null);
?
la source
mais attention à ça ...
Long nullLong = null; preparedStatement.setLong( nullLong );
-thows exception de pointeur nul-
parce que le protype est
setLong( long )
NE PAS
gentil pour vous attraper hein.
la source
Finalement, j'ai fait un petit test et pendant que je le programmais, il m'est venu à l'esprit que sans la méthode setNull (..), il n'y aurait aucun moyen de définir des valeurs nulles pour les primitives Java. Pour les objets dans les deux sens
et
set<ClassName>(.., null))
se comportent de la même manière.
la source
Vous pouvez également envisager d'utiliser
preparedStatement.setObject(index,value,type);
la source
cela devrait fonctionner pour n'importe quel type. Bien que dans certains cas, l'échec se produit côté serveur, comme: pour SQL:
Oracle 18XE
échoue avec le mauvais type: attenduDATE
, obtenuSTRING
- c'est un échec parfaitement valide;Bottom line: il est bon de connaître le type si vous appelez
.setNull()
la source