2016-05-07 12 views
-1

私はACCOUNTINFOテーブルを持っていますが、 "残高"フィールド属性を別の変数 "amount"と比較する変数として使用しようとしています。これを行うことで、私は残高から金額を差し引いて残りの残高を表示することができますが、私はこれを働かせることはできません。誰も私に手を差し伸べることができますか?Java SQL - フィールド属性を変数として使用する方法

私のコードは以下の通りです:

boolean flag = false; 
    try { 
     String Balance = null; 
     ResultSet rs = null; 

     if (rs.next()){ 
      Balance = rs.getString(1); 
     } 
     if (amount < Long.valueOf(Balance).longValue()){ 
      ResultSet res = null; 
      res = stm.executeQuery("UPDATE AccountInfo SET Balance = Balance -"+ amount); 
     } 

    } 
    catch (SQLException sql) { 

     System.out.println(sql); 
    } 

    return flag; 
} 
    try { 
     String Balance = null; 
     ResultSet rs = null; 

     if (rs.next()){ 
      Balance = rs.getString(1); 
     } 
     if (amount < Long.valueOf(Balance).longValue()){ 
      ResultSet res = null; 
      res = stm.executeQuery("UPDATE AccountInfo SET Balance = Balance -"+ amount); 
     } 
+0

'if(rs.next()){'(行6)でNullPointerExceptionが表示されますが間違っていますか?その位置でrsは唯一nullである可能性があります – mauros

+0

@mauros申し訳ありませんマウロス何を意味しますか? – gcpreston

+0

'rs'をnullに設定し、次の行でランタイムに' rs.next() 'を呼び出すと、' rs'がnullであるため、NullPointerExceptionが発生するはずです。そして、あなたはSQLExceptionを捕まえているので、その例外を捕まえてログに記録しないかもしれません。しかし、私はJVMではないので間違っているかもしれません。 – mauros

答えて

0
try { 
    String Balance = null; 
    ResultSet rs = stm.executeQuery("SELECT balance FROM ACCOUNTINFO WHERE ...CONDITIONS..."); 
    if (rs.next()){ 
    Balance = rs.getString(1); 
    } 
    if (amount < Long.valueOf(Balance).longValue()){ 
    ResultSet res = null; 
    res = stm.executeUpdate("UPDATE AccountInfo SET Balance = Balance -" + amount); 
    } 
} 
catch (SQLException sql) { 
    System.out.println(sql); 
} 
catch (Exception ex) { 
    System.out.println(ex); 
} 

あなたが選択クエリに条件を追加する必要があります。

関連する問題