java - 如果从数据库中获取空值,如何设置 NULL?我收到 500 个内部服务器错误
问题描述
如果我从数据库中获取 Empty 值,我想将该值设置为 null。
注意:我得到了空白,所以使用了该trimToEmpty()
方法。
当前:邮递员节目->部门:''
resultset.setDepartment(StringUtils.trimToEmpty(rs.getString("Department")));
变成 :
resultset.setDepartment(StringUtils.trimToEmpty(rs.getString("Department")).isEmpty() ? null : StringUtils.trimToEmpty(rs.getString("Department")));
获取错误:“消息”:“内部服务器错误”
解决方案
您报告了 Java 和数据库访问 - 所以我假设您在 JDBC 或 Datasource 的某个地方。您向数据库发送查询,结果可能包含您希望将其视为空值的空值。
好吧,数据库区分未知(NULL)数据和已知的空数据。因此,要么您必须对数据库添加限制(例如,将列更改为不可为空)。在您的代码中处理这些值可能会更顺畅 - 但请注意在所有代码中始终如一地执行此操作。中央访问器方法可以使这项任务更容易。
以下是使用String::isBlank()的代码示例:
String value = ...
if (value != null && value.isBlank()) {
value = null;
}
resultset.setDepartment(value);
但是我不确定最后一行是否会按预期工作。我只是使它类似于您之前发布的代码。
推荐阅读
- c# - CSharpScript.EvaluateAsync 无法识别枚举
- swift - Firebase MacOS 11 支持
- c - 信号量和互斥循环
- rust - 将可变引用“移动”到自身中
- spring-boot - 带有 Spring Boot 后端的 AWS API Gateway websocket
- sqlite - SQLite UPDATE 仅一条记录匹配 WHERE 子句,MAX 在另一个字段上
- delphi - Delphi中使用的.rc文件格式的官方文档?
- python - 如何在 python 中将图像的尺寸从 3D 矩阵更改为 2D 矩阵?
- tensorflow - 使用 Tensorflow 屏蔽和重塑矩阵
- regex - 通过正则表达式拆分字符串 - 仅当左侧的字符不是 Kotlin 中的 # 时,才用字符“=”拆分整个字符串