PreparedStatement setNull (..)

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 pour un setType spécifique avec un paramètre nul?

 prepStmt.setSsortingng(null); 

?

Ce guide dit:

6.1.5 Envoi de JDBC NULL en tant que paramètre IN

La méthode setNull permet à un programmeur d’envoyer une valeur JDBC NULL (une valeur générique SQL NULL) à la firebase database en tant que paramètre IN. Notez toutefois que vous devez toujours spécifier le type JDBC du paramètre.

Un JDBC NULL sera également envoyé à la firebase database lorsqu’une valeur null Java est transmise à une méthode setXXX (si elle prend les objects Java comme arguments). La méthode setObject, cependant, ne peut prendre une valeur nulle que si le type JDBC est spécifié.

Alors oui, ils sont équivalents.

mais attention à cela ….

 Long nullLong = null; preparedStatement.setLong( nullLong ); 

-pas une exception de pointeur nul-

parce que le protype est

 setLong( long ) 

NE PAS

 setLong( Long ) 

gentil de te rattraper hein.

Finalement, j’ai fait un petit test et pendant que je le programmais, je me suis dit que sans la méthode setNull (..), il n’y aurait aucun moyen de définir des valeurs NULL pour les primitives Java. Pour les objects dans les deux sens

 setNull(..) 

et

 set(.., null)) 

se comporter de la même manière.

Vous pouvez également envisager d’utiliser preparedStatement.setObject(index,value,type);