Java PreparedStatement bietet die Möglichkeit, einen Nullwert explizit festzulegen. Diese Möglichkeit ist:
prepStmt.setNull(parameterIndex, Types.VARCHAR);
Ist die Semantik dieses Aufrufs dieselbe wie bei Verwendung eines bestimmten setType mit einem Nullparameter?
prepStmt.setString(null);
?
quelle
aber pass auf das auf ....
-wirft Nullzeiger Ausnahme-
weil der Prototyp ist
NICHT
schön dich zu erwischen eh.
quelle
Schließlich habe ich einen kleinen Test durchgeführt, und während ich ihn programmierte, kam mir der Gedanke, dass es ohne die Methode setNull (..) keine Möglichkeit geben würde, Nullwerte für die Java-Grundelemente festzulegen. Für Objekte in beide Richtungen
und
benimm dich genauso.
quelle
Sie könnten auch in Betracht ziehen, zu verwenden
preparedStatement.setObject(index,value,type);
quelle
prepareStatement.setNull (index, java.sql.Types.NULL);
das sollte für jeden Typ funktionieren. In einigen Fällen tritt jedoch ein Fehler auf der Serverseite auf, z. B.: Für SQL:
COALESCE (?, CURRENT_TIMESTAMP)
Oracle 18XE schlägt mit falschem Typ fehl: erwartetes DATUM, bekam STRING - das ist ein vollkommen gültiger Fehler;
Fazit: Es ist gut, den Typ zu kennen, wenn Sie .setNull () aufrufen.
quelle