PreparedStatement and 'null' value in WHERE clause
- by bond
I am using PrepareStatement and BatchUpdate for executimg a UPDATE query. In for loop I create a Batch. At end of loop I execute batch.
Above logic works fine if SQL query used in PrepareStatement does not have null values in WHERE claues.
Update Statement fails if there is null value in WHERE clasue.
My code looks something like this,
connection = getConnection();
PreparedStatement ps = connection.prepareStatement("UPDATE TEST_TABLE
SET Col1 = true
WHERE
Col2 = ? AND Col3 = ?")
for (Data aa : InComingData)
{
if(null == aa.getCol2())
{
ps.setNull(1, java.sql.Types.INTEGER);
}
else
{
ps.setInteger(1,aa.getCol2())
}
if(null == aa.getCol3())
{
ps.setNull(2, java.sql.Types.INTEGER);
}
else
{
ps.setInteger(2,aa.getCol3())
}
ps.addBatch();
}
ps.executeBatch();
connection.commit();
Any help would be appreciated.