Обсуждение: PreparedStatement.setString with null
What is this supposed to do?
PreparedStatement stat = connection.prepareStatement("update table1
set col1 = ?");
stat.setString(1, null);
Will this make a null value in the database or an empty string? Do we
have to use the setNull(1, Types.VARCHAR) in order to get a null value
entered?
Thanks,
Tim
Tim Penhey schrieb:
> What is this supposed to do?
>
> PreparedStatement stat = connection.prepareStatement("update table1
> set col1 = ?");
> stat.setString(1, null);
>
> Will this make a null value in the database or an empty string? Do we
> have to use the setNull(1, Types.VARCHAR) in order to get a null value
> entered?
If you want to be portable to different databases, use the setNull() method.
--
Roland Walter
MOSAIC SOFTWARE AG
Telefon: 02225/882-411 Fax: 02225/882-201
http://www.mosaic-ag.com
Tim Penhey wrote:
> What is this supposed to do?
>
> PreparedStatement stat = connection.prepareStatement("update table1
> set col1 = ?");
> stat.setString(1, null);
>
> Will this make a null value in the database or an empty string? Do we
> have to use the setNull(1, Types.VARCHAR) in order to get a null value
> entered?
The postgresql JDBC driver treats setString(x, null) identically to
setNull(x, Types.VARCHAR). I don't know how portable this behaviour is;
the javadoc is silent on how this case should be handled. You're
probably better off using setNull() explicitly.
-O