如何设置NULL,如果从数据库获得空值?我得到500内部服务器错误



如果我从数据库中获得空值,我想将值设置为null。

注意:我得到空白,所以使用trimToEmpty()方法。

目前:邮差显示->部门:"

resultset.setDepartment(StringUtils.trimToEmpty(rs.getString("Department")));

更改为:

resultset.setDepartment(StringUtils.trimToEmpty(rs.getString("Department")).isEmpty() ? null : StringUtils.trimToEmpty(rs.getString("Department")));

get Error: "message"; "Internal Server Error">

您报告了Java和数据库访问—所以我假设您在JDBC或Datasource的某个地方。您向数据库发送一个查询,结果可能包含您想要当作空值处理的空值。

嗯,数据库区分未知(NULL)数据和已知的空数据。因此,要么您必须为数据库添加限制(例如,将列更改为不可空)。在代码中处理这些值可能会更顺畅——但要注意在所有代码中保持一致。中央访问器方法可以使这项任务更容易。

下面是使用String::isBlank(): 的示例代码
String value = ...
if (value != null && value.isBlank()) {
value = null;
}
resultset.setDepartment(value);

然而,我不确定最后一行是否会像预期的那样工作。我只是做了一个类似于你之前发布的代码。

我同意其他人的意见,您应该检查日志,因为问题可能只是别的东西。

无论如何,你可以替换

StringUtils.trimToEmpty(rs.getString("Department")).isEmpty() ? null : StringUtils.trimToEmpty(rs.getString("Department"))

更简单

StringUtils.stripToNull(rs.getString("Department"))

StringUtils.trimToNull(rs.getString("Department"))

如果这是你真正想要达到的目标