Il n'est pas nécessaire de passer la variable d'instruction sql à executeQuery
pour PreparedStatement
. C'est le principal problème dans votre cas.
PreparedStatement preparedStatement = connection.prepareStatement(selectSQL);
preparedStatement.setString(1, lexiconType);
preparedStatement.setString(2, lemma);
// error is in the following statement
ResultSet rs = preparedStatement.executeQuery(selectSQL);
Pendant que vous réinitialisez le SQL à exécuter, l'instruction n'est pas reconnue comme une instruction préparée mais comme une instance du parent Statement
qui recherche des entrées valides entre guillemets pour les piqûres, etc. qui ne sont pas présentes. Et d'où l'erreur de syntaxe.
Modifier :
ResultSet rs = preparedStatement.executeQuery(selectSQL);
À :
ResultSet rs = preparedStatement.executeQuery();
Et ça devrait marcher.
Référer :