2016-05-07 9 views
-1

Ich habe eine ACCOUNTINFO-Tabelle und ich versuche, das "Balance" -Feldattribut als eine Variable zu verwenden, um es mit einer anderen Variablen, "Betrag", zu vergleichen. Auf diese Weise kann ich den Betrag vom Kontostand abziehen und dann das Restguthaben anzeigen, aber ich kann das nicht zur Arbeit bringen. Kann mir jemand helfen?Java SQL - Wie benutze ich ein Feldattribut als Variable

Mein Code ist unten:

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

Ich sehe eine NullPointerException bei 'if (rs.next()) {' (Zeile 6) bin ich falsch? An dieser Position könnte rs nur null sein. – mauros

+0

@mauros Sorry Mauros was meinst du? – gcpreston

+0

Ich meine, wenn Sie 'rs' auf null setzen und in der nächsten Zeile' rs.next() 'nennen, sollten Sie zur Laufzeit eine NullPointerException haben, da' rs' null ist. Und da Sie nur SQLException abfangen, können Sie diese Ausnahme möglicherweise nicht abfangen und nicht protokollieren. Aber ich bin keine JVM, also kann ich mich irren. – mauros

Antwort

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); 
} 

Sie haben die Bedingungen für die SELECT-Abfrage hinzuzufügen.

Verwandte Themen