Thread: 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