(Java) DBのINTEGER型カラムにNULLをセットする - JDBC

 JDBCのI/FでPreparedStatementを使うとき、INTEGER型のカラムにNULLをセットするには、PreparedStatement#setNull(int parameterIndex, int sqlType)を使う。sqlTypeには、java.sql.Typesで定義される型を指定する。なるほど。久しぶりにJDBCなんか触ったのですっかり忘れている。。。


Connection con = ...(略)
PreparedStatement pstmt = null;

Strin sql = "update hoge set price=? where pk=?"; // price列はNULL許容
try {
pstmt = con.prepareStatement(sql);
if (price != null) { // priceはjava.lang.Integerとする。
pstmt.setInt(1, price);
} else {
pstmt.setNull(1, java.sql.Types.INTEGER);
}
pstmt.setInt(2, pk);
int ret = pstmt.executeUpdate();
con.commit();
...
} catch ( ....