如何将null发送到整数字段 - JAVA REST

时间:2015-10-30 19:40:07

标签: java mysql json rest

preparedStatement1.setInt(1,jsonObject1.getInteger("userid"));

数据库是mySQL。我在数据库中的userID字段是int类型,是一个可选字段。

如何从json轻松地将NULL传递给它?

{"userid":null}让我犯了错误。

1 个答案:

答案 0 :(得分:1)

将int字段设置为null的方式是使用setInt而不是https://stackoverflow.com/a/8524199/1010777setInt采用int参数,因此它不能作为值接收null。

在您的情况下,您可以使用它来涵盖字段可能为空或不为空的情况:

Integer userId = jsonObject1.getInteger("userid");
if (userId==null) {
    preparedStatement1.setNull(1, Types.INTEGER);
} else {
    preparedStatement1.setInt(1, userId);
}

如果您愿意,可以编写辅助方法来更方便地执行此操作。

public static void setInteger(PreparedStatement stmt, int index, Integer value) {
    if (value==null) {
        stmt.setNull(index, Types.INTEGER);
    } else {
        stmt.setInt(index, value);
    }
}

然后在上下文中,您的操作又回到了一行:

setInteger(preparedStatement1, 1, jsonObject1.getInteger("userid"));