在SQLite表中,我有两个字段END_DATE和START_DATE。首次运行时END_DATE为空且为空。在第二次运行时,我想用当前时间更新END_DATE为null的先前记录,并创建新记录,但是它返回错误:
try {
updateBuilder.where().eq("END_DATE", null);
updateBuilder.updateColumnValue("END_DATE", currentTime);
updateBuilder.update();
} catch (SQLException e) {
e.printStackTrace();
}
appUsageLog.setStartDate(currentTime);
appUsageLog.setPackageName(topPackageName);
appUsageLog.setEndDate(null);
appUsageLog.setUser(member);
try {
appUsageDao.create(appUsageLog);
} catch (SQLException e) {
e.printStackTrace();
}
错误:
java.sql.SQLException:“ EndDate”的参数为空
答案 0 :(得分:1)
使用isNull
函数检查NULL
数据库值:
updateBuilder.where().isNull("END_DATE");
updateBuilder.updateColumnValue("END_DATE", currentTime);
updateBuilder.update();
作为isNull
状态的文档,我们不能使用相等性=
来检查SQLite(或实际上是任何形式的SQL)中的NULL
值:
添加一个“ IS NULL”子句,因此该列必须为空。 '='NULL不起作用。