sql >> Base de Datos >  >> RDS >> Mysql

Excepción en el subproceso principal com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:tiene un error en su sintaxis SQL

No es necesario pasar la variable de instrucción sql a executeQuery para PreparedStatement . Ese es el problema principal en su caso.

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

Mientras reinicias el sql que se ejecutará, la declaración no se reconoce como una declaración preparada, sino como una instancia de padre Statement que busca entradas válidas entre comillas para picaduras, etc. que no están presentes. Y de ahí el error de sintaxis.

Cambiar :

ResultSet rs = preparedStatement.executeQuery(selectSQL);

A :

ResultSet rs = preparedStatement.executeQuery();

Y debería estar funcionando.

Recomendar :