Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exceção na thread principal com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Você tem um erro em sua sintaxe SQL


Não há necessidade de passar a variável de instrução sql para executeQuery para PreparedStatement . Esse é o principal problema no seu 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);

Como você está redefinindo o sql a ser executado, a instrução não é reconhecida como instrução preparada, mas uma instância do pai Statement que está procurando entradas válidas entre aspas para picadas etc. que não estão presentes. E, portanto, é o erro de sintaxe.

Alterar :
ResultSet rs = preparedStatement.executeQuery(selectSQL);

Para :
ResultSet rs = preparedStatement.executeQuery();

E deve estar funcionando.

Indicar :