簡體   English   中英

為什么檢索到的結果集字符串不適用於.equals()

[英]Why the retrieved result set string doesn't work with the .equals()

我正在從數據庫中檢索一些信息,我想檢查該值是否為null。 盡管從數據庫檢索的字符串為“ null”,但equals()返回false。

我嘗試過trim(),以防萬一檢索到的字符串中有空格

     String code = product.retrieveCode();
            System.out.println("the code is :"+ code);

            if (code.equals("null")==true){  
                // do this 
            }
            else{
                //   do that
            }    

請注意,數據庫沒有存儲任何數據。

正如“ Eran”所指出的那樣, code的值可能是null引用。 做,

if (code == null)

代替

if (code.equals("null")==true)

發生這種情況的可能是因為rs對象在調用它的getString()方法時返回null 當列值為SQL NULL時, ResultSet將返回null 參考

您的邏輯和語法是正確的。在這種情況下,您的數據庫值可能正在為代碼分配空值,並且您正在檢查字符串“ null”是否等於代碼。 這將導致錯誤,因為它是空引用。 確保您得到的是“ null”,否則,如果它為空,則檢查是否等於空格

它打印是。 所以我不認為Java做錯了什么

String code = "null";
if (code.equals("null")){  
     System.out.println("Yes");
} else{
   //   do that
}

我認為這是一個空引用。 請執行以下代碼。

if (code==null){  
   System.out.println("Yes");
} else{
       //   do that
}

1。

code不能為空為code.equals()會拋出一個NullPointerException ,因為你會從調用一個方法null - >東西不存在。

2。

.equals()區分大小寫,大多數數據庫將null存儲為NULL ,因此請使用code.equalsIgnoreCase("null")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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