2017-08-16 3 views
0

Die Sache, die ich hier erreichen möchte, ist, dass ich einen Tabellennamen total_product in MySQL-Datenbank habe und ich möchte den Wert von SNo = 1 aus der Tabelle abrufen und aktualisieren Sie die Menge in der Tabelle. Es gibt ein Textfeld, das ich in GUI verwende, in dem das zusätzliche Produkt geschrieben wird. Die Ausgabe aus der Tabelle wird in einer Variablen-ID gespeichert und die neue produzierte Menge wird in der Variablen q1 gespeichert. , so dass die neue Produktmenge q1 = q1 + id ist. Ich bin nicht in der Lage zu verstehen, was ich in der SQL-Anweisung, die in stmt.executeUpdate (SQL) verwendet wird, setzen sollte, weil die SQL eine Zeichenfolge ist und ich einen Integer-Wert an Qnty in der SQL-Zeichenfolge übergeben müssen.Daten in Tabelle aktualisieren

Bitte Hilfe.

Connection conn = null ; 
    Statement stmt = null ; 

    String url = "jdbc:mysql://localhost:3306/project"; 
    String user = "root"; 
    String password = ".dpadpep"; 
    try { 

     Class.forName("com.mysql.jdbc.Driver"); 

     conn = DriverManager.getConnection(url,user,password); 

     String sql = "Select Qunty from total_product " + "where SNo = 1"; 

     stmt = conn.createStatement(); 

     ResultSet rs = stmt.executeQuery(sql); 

     int id=0; 
     int q1 = Integer.parseInt(fld1[0].getText()); 

     while(rs.next()) { 
      id = rs.getInt(1); 
      System.out.println("Quantity="+id); 
     } 

     q1 = q1+id; 

     sql = "UPDATE total_product " + "set Qunty = q1 where SNo=1"; 
     stmt.executeUpdate(sql); 

Antwort

1

Sie müssen den aktuellen Wert in der Datenbank nicht explizit abrufen, können Sie direkt den zusätzlichen Betrag einfach hinzufügen:

int q1 = Integer.parseInt(fld1[0].getText()); 
String sql = "UPDATE total_product SET Qunty = Qunty + ? WHERE SNo = 1"; 
PreparedStatement ps = conn.prepareStatement(sql); 
ps.setInt(1, q1); 
ps.executeUpdate(); 
+1

die Frage beantwortet und behandelt, wie es jemand sieht gewesen sein mag direkt in eine SQL-Injection-Schwachstelle gehen? Nicht schlecht ... – user2366842

+0

Sie Rock Mann, es hat funktioniert :) –

Verwandte Themen