2011-06-18 93 views
1

我的ResultSet查詢ResultSet中值是問題處理在Eclipse RCP的

StrQry = "select SUM(isnull(prn_amount,0))as prn_amount,SUM(isnull(adv_prn,0))as adv_prn, SUM(isnull(prv_prn,0))as prv_prn from loan_transaction_mcg where loan_id='1117'"; 

這是給的結果是基於SQL

  1. prn_amount = NULL
  2. adv_prn = NULL
  3. prv_prn = NULL

,當貸款ID = 1117

ResultSet RsPrincipalDetail = getPaidDetail(loan_id); 

     while(RsPrincipalDetail.next()){ 

     prn1 = RsPrincipalDetail.getString("prn_amount"); 
     prn2 = RsPrincipalDetail.getString("adv_prn"); 
     prn3 = RsPrincipalDetail.getString("prv_prn"); 
     if(prn1.equals("")){ 
      prn1.equals("0");    
     } 
     if(prn2.equalsIgnoreCase("")){ 
      prn2.equals("0");    
     } 
     if(prn3.equalsIgnoreCase("")){ 
      prn3.equals("0");    
     } 

我試圖把prn1.equals(空),但仍是空指針異常來。我試圖在prn1調試模式下,它顯示爲null作爲其值。

回答

0

這裏的問題是,由於你的數據庫中值是NULL時你使用getString將它們轉換爲java值,它們也將爲null。

由於空是不一樣的空字符串你真的不能使用prn.equals(「」)

而且使用prn.equals(空)是一個糟糕的主意,因爲通常是等於的實現方式。 ..它會返回false,如果東西,它是相對於爲null

最好的辦法是用平等的運營商來檢查空

如果(PRN == NULL)

0

表的列名是什麼?

對我來說,這似乎是可能的循環:

SUM(isnull(prn_amount,0))as prn_amount 

而且似乎是一個group by缺少的聲明loan_id