richtige Syntax für die Verwendung in der Nähe von ‘?’

Ich habe einen Java-Code:

String searchPerson = "select * from persons where surname like ? and name like ?"; //connect to DB PreparedStatement statement = connect.prepareStatement(searchPerson); statement.setString(1,"%"+ surname + "%"); statement.setString(2, "%" + name + "%"); ResultSet resultPerson = statement.executeQuery(searchPerson); //..code 

Dann habe ich SQLException:

Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MySQL-Server-Version entspricht, damit die richtige Syntax in der Nähe von ‘?’ verwendet werden kann.

Sie sollten das PrepareStatement ohne Parameter wie folgt ausführen:

 statement.executeQuery() 

executeQuery Sie executeQuery mit einem String Parameter executeQuery wird die angegebene Abfrage executeQuery ausgeführt (ohne die gebundenen Parameter).

 ResultSet resultPerson = statement.executeQuery(searchPerson); 

sollte sein

 ResultSet resultPerson = statement.executeQuery(); 

Versuchen Sie es mit statement.setString(1,"'%"+ surname + "%'");