[英]How to set NULL if getting empty value from database? I am getting 500 internal server error
如果我從數據庫中獲取 Empty 值,我想將該值設置為 null。
注意:我得到了空白,所以使用了trimToEmpty()
方法。
當前: Postman 顯示 -> 部門:''
resultset.setDepartment(StringUtils.trimToEmpty(rs.getString("Department")));
變成:
resultset.setDepartment(StringUtils.trimToEmpty(rs.getString("Department")).isEmpty() ? null : StringUtils.trimToEmpty(rs.getString("Department")));
獲取錯誤:“消息”:“內部服務器錯誤”
您報告了 Java 和數據庫訪問 - 所以我假設您在 JDBC 或數據源上的某個地方。 您向數據庫發送查詢,結果可能包含您想要處理的空值,例如 null 值。
好吧,數據庫區分未知(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"))
如果那是你真正想要達到的目標
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.