使用JDBC将null插入Integer列

时间:2013-01-25 02:52:42

标签: java sql jdbc

我有一个SQL列PROTOCOL,它可以为空并且对表有约束

PROTOCOL IN (1, 2, 3)

此外,由于它可以为空,我想在表

中设置并获取空值

但我无法将setIntgetInt视为空。如何使用JDBC

将null设置为null
setInt(4,null);

2 个答案:

答案 0 :(得分:74)

尝试使用。

   pst.setNull(4, java.sql.Types.INTEGER);  //pst is prepared statement instance.

Interface PreparedStatement.setNull API

Mapping of java.sql.Types to SQL types

P.S。 :编辑以反映Java 8更新。

答案 1 :(得分:14)

除了Smit's answer

如果要将null - 对象插入到可能为statement.setObject(4, yourObject, java.sql.Types.INTEGER); 的数据库中,可以使用

if (yourObject == null) {
    statement.setNull(4, java.sql.Types.INTEGER);
else {
    statement.setInt(4, yourObject);
}

而不是

HTTPCookieStorage.shared.cookies?.forEach(HTTPCookieStorage.shared.deleteCookie)