DbUtilsでTIMESTAMPにnullをセット

DbUtilsDB2のTIMESTAMPカラムにnullを突っ込もうとしたら「ドライバが対応していない」とエラー。
setNull(i + 1, Types.OTHER)ではTIMESTAMP型にnullを突っ込めないよう。
仕方ないのでQueryRunner#fillStatement()をオーバーライド。


protected void fillStatement(PreparedStatement stmt, Object[] params)
throws SQLException {
if (params == null)
return;

for (int i = 0; i < params.length; i++) {
if (params[i] != null)
stmt.setObject(i + 1, params[i]);
else
stmt.setNull(i + 1, Types.VARCHAR);
}
}

動くことは動いたけど、他の型でもこれでnullを突っ込めるかは不明。


そういえば、Oracleでも似たような事があったなぁ…