SQLException: executeQuery-Methode kann nicht verwendet werden, für update
Ich versuche, legen Sie die Benutzer-Informationen aus einem Anmeldeformular in Derby DB über ein java-servlet Klasse.
Ich eine Verbindung zu der DB auf NetBeans direkt nach der Benutzer auf die senden-Schaltfläche, mit der Benutzer Informationen ausgefüllt. Dann sollte es laufen mit dieser Methode:
public void insertNewUser(String userName, String passWord, String lastName, String firstName, String age, char sex, String email) {
try {
stmt = conn.createStatement();
String insertNewUserSQL = "INSERT INTO " + studentsTable + " VALUES ('" + userName + "', '" + passWord + "', '" + lastName + "', '" + firstName + "', " + age + ", '" + sex + "', '" + email + "')";
System.out.println(insertNewUserSQL);
stmt.executeQuery(insertNewUserSQL);
stmt.close();
} catch(SQLException sqlExcept) {
sqlExcept.printStackTrace();
}
}
Aber ich bekomme immer folgende exception:
java.sql.SQLException: executeQuery method can not be used for update.
Was bedeutet das genau?
Den SQL-Befehl richtig ist, wie kann ich es manuell auf NetBeans SQL-Befehl Fenster.
Gibt es Einschränkungen für servlets oder etwas, das ich nicht kennen?
Vielen Dank im Voraus!
InformationsquelleAutor danksim | 2013-04-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie das einfügen eines Datensatzes, sollten Sie mit Hilfe
executeUpdate()
nichtexecuteQuery()
.Hier sind einige Methoden, die in der Regel missbraucht:
boolean execute()
ResultSet executeQuery()
int executeUpdate()
Eins noch, deine Abfrage ist schwach, da es anfällig ist, mit
SQL Injection
. Bitte parametrisiert durch die VerwendungPreparedStatement
.Beispiel-Code-Snippet:
siehe meine aktualisierte Antwort mit code-snippets.
J W, ich danke Ihnen sehr. Das ist sehr hilfreich für noobs wie mich. Ich werde sicherstellen, dass ich benutze PreparedStatements! Nochmals vielen Dank!
du bist willkommen
:D
InformationsquelleAutor John Woo
Die Werte zu aktualisieren, die Sie verwenden müssen, um ein aktualisierbares ResultSet, wie folgt:
Alternativ können Sie die Verwendung der executeUpdate-Methode der Anweisung, wie folgt:
statement.executeUpdate("update table set id = 2");
InformationsquelleAutor hd1