Problem mit dem vorbereiteten Stetement-Parameter beim Einfügen eines einzelnen Parameters in Select Query [duplicate]

Sep 09 2020

Ich versuche, die vorbereitete Anweisung für die Auswahlabfrage zu erstellen

String Select_Query = "select * from customers where customerNumber=? ";
Connection connection = DriverManagersSQL.getDriverMangerInstance();
preparedStatement statement = connection.prepareStatement(Select_Query);
statement.setInt(1, 101);
ResultSet resultSet = statement.executeQuery(Select_Query);

Aber ich habe einen Fehler wie diesen:

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1

Ich habe die Abfrage in die Datenbank ausgeführt und sie funktioniert einwandfrei. Es liegt kein Syntaxfehler vor. Dies passiert bei mir die ganze Zeit, wenn ich versuche, mit einzelnen Filterparametern zu arbeiten. Anregungen werden geschätzt.

Vielen Dank

Antworten

2 khelwood Sep 09 2020 at 04:13

Ruf nicht an

statement.executeQuery(Select_Query)

Sie haben Ihr PreparedStatement bereits eingerichtet. Es hat bereits Ihre SQL und die darin enthaltenen Parameter.

Ruf einfach an

statement.executeQuery()

stattdessen.

executeQuery () ist eine Methode von PreparedStatement, die die bereits gegebene Abfrage unter Verwendung der bereits festgelegten Parameter ausführt.

executeQuery (String) ist eine Anweisungsmethode, die versucht, die Abfrage auszuführen, die Sie jetzt geben. Ihre Parameter werden nicht verwendet, und in den Dokumenten wird ausdrücklich angegeben, dass beim Aufrufen dieser Methode in einem PreparedStatement eine SQLException ausgelöst wird.