Mysql
 sql >> Database >  >> RDS >> Mysql

Eccezione nel thread principale com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:si è verificato un errore nella sintassi SQL

Non è necessario passare la variabile dell'istruzione sql a executeQuery per PreparedStatement . Questo è il problema principale nel tuo 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);

Mentre stai reimpostando sql da eseguire, l'istruzione non viene riconosciuta come istruzione preparata ma un'istanza del genitore Statement che cerca input validi tra virgolette per punture ecc. che non sono presenti. E quindi è l'errore di sintassi.

Cambia :

ResultSet rs = preparedStatement.executeQuery(selectSQL);

A :

ResultSet rs = preparedStatement.executeQuery();

E dovrebbe funzionare.

Fai riferimento :