Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ausnahme im Hauptthread com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Sie haben einen Fehler in Ihrer SQL-Syntax

Es besteht keine Notwendigkeit, eine SQL-Anweisungsvariable an executeQuery zu übergeben für PreparedStatement . Das ist das Hauptproblem in Ihrem Fall.

PreparedStatement preparedStatement = connection.prepareStatement(selectSQL);
preparedStatement.setString(1, lexiconType);
preparedStatement.setString(2, lemma);
// error is in the following statement
ResultSet rs = preparedStatement.executeQuery(selectSQL);

Beim Zurücksetzen In der auszuführenden SQL wird die Anweisung nicht als vorbereitete Anweisung erkannt, sondern als Instanz der übergeordneten Statement die nach gültigen Eingaben zwischen Anführungszeichen für Stiche usw. sucht, die nicht vorhanden sind. Und daher der Syntaxfehler.

Ändern :

ResultSet rs = preparedStatement.executeQuery(selectSQL);

An :

ResultSet rs = preparedStatement.executeQuery();

Und es sollte funktionieren.

Verweisen :