原始SQL更新语句,而日期值设置为NULL

时间:2014-01-02 12:57:29

标签: java mysql sql

我有一个SQL语句:

UPDATE user SET name=?, email=?, password=?, gender=?, birthDate=? WHERE token=? AND email=? AND password = ?

一切正常但是,当我尝试将birthDate设置为NULL时,我收到一个SQLException。

声明是正确的(我在phpMyAdmin控制台中检查过它。)

将birthDate设置为NULL:

        if (user.getBirthDate() != null)
            ps.setDate(5, user.getBirthDate());
        else
            ps.setNull(5, java.sql.Types.DATE);

当设置为随机日期(例如,今天)时 - 一切正常。

它出了什么问题?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你需要在java代码中做一些条件逻辑来确定你的sql查询是什么。如果您希望将出生日期设置为null,则您的语句必须为

UPDATE user SET name=?, email=?, password=?, gender=?, birthDate=null 
WHERE token=? AND email=? AND password = ?

否则,正如您所注意到的,查询很好。