簡體   English   中英

如果從數據庫中獲取空值,如何設置 NULL? 我收到 500 個內部服務器錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM