45

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

PROTOCOL IN (1, 2, 3)

另外,由于它可以为空,我想将空值设置并获取到表中

但我不能做setIntgetInt为空。如何使用 JDBC 将空列设置为空

setInt(4,null);
4

2 回答 2

95

尝试使用。

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

接口 PreparedStatement.setNull API

java.sql.Types 到 SQL 类型的映射

PS:已编辑以反映 Java 8 更新。

于 2013-01-25T02:57:49.613 回答
25

除了Smit 的回答

如果您想将Integer-object 插入可能是的数据库中null,您可以使用

statement.setObject(4, yourObject, java.sql.Types.INTEGER);

代替

if (yourObject == null) {
    statement.setNull(4, java.sql.Types.INTEGER);
else {
    statement.setInt(4, yourObject);
}
于 2017-11-15T17:14:59.907 回答