2017-02-19 2 views
-3

Ich habe versucht, meine Daten in meine Datenbank Tabellenname namens newdevice einzufügen. Meine Frage ist:Fehler beim Einfügen von Daten in der Datenbank

String query= uni +"," + nam +","+ temp + "," + vendor + "," + invoice +","+ dop +"," + cost ; 
       res=stm.executeQuery("INSERT INTO newdevice " + "(uniqueid , device , device_status , vendor_name , invoice , dop , cost)" + " VALUES(" + query +")"); 

Aber während dies tue stand ich diesen Fehler:

org.firebirdsql.jdbc.FBSQLException: GDS Ausnahme. 335544569. Dynamischer SQL Fehler SQL Fehlercode = -104 Token unbekannt - Zeile 1, Spalte 106

(,) es zeigt Fehler mit Komma.

Antwort

0

Mit Anführungszeichen stimmt etwas nicht. Ich denke, die Aussage (uniqueid , device , device_status , vendor_name , invoice , dop , cost) sollte nicht im doppelten Zitat sein. können Sie versuchen, dieses doppelte Zitat zu entfernen.

2

Das Problem ist, dass Sie wahrscheinlich Zitate um String-Werte usw. fehlen, aber Sie sollten solche Werte überhaupt nicht verketten. Es lässt Sie offen für SQL-Injection. Stattdessen sollten Sie einen PreparedStatement mit Parametern wie folgt verwenden:

try (PreparedStatement pstmt = connection.prepareStatement(
     "INSERT INTO newdevice (uniqueid, device, device_status, vendor_name, invoice, dop, cost) VALUES(?, ?, ?, ?, ?, ?, ?)" 
    pstmt.setInt(1, uni); 
    pstmt.setString(2, nam); 
    pstmt.setInt(3, temp); 
    pstmt.setString(4, vendor); 
    pstmt.setInt(5, invoice); 
    pstmt.setInt(6, dop); 
    pstmt.setBigDecimal(7, cost); 
    pstmt.executeUpdate(); 
} 

Bitte beachte, dass ich eine Zufallsvermutung auf den tatsächlichen Datentypen für die setXXX gemacht haben.

+0

ich denke, es ist gut, auf diese http://stackoverflow.com/documentation/jdbc/2939/preparedstatement#t=201702191955028007576 zu verweisen, damit er über PrepredredStatement lernen kann :) –

+0

Danke you.now es funktioniert. –

+0

@Rajkumar Wenn meine Antwort Ihnen geholfen hat, das Problem zu beheben, dann akzeptieren Sie es, indem Sie auf das Häkchen klicken. –

Verwandte Themen