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 :