Będziesz musiał usunąć query argument z twojego executeQuery połączenie. Jeśli podasz parametr, zapytanie zostanie wykonane bez wiązania żadnych wartości (zobacz Oświadczenie
po szczegóły) - stąd składnia (tj. ? ) jest nieprawidłowy.
Wykonaj zapytanie w ten sposób:
ResultSet rst = st.executeQuery();
Na marginesie:zawsze powinieneś zawinąć Connection , PreparedStatement i ResultSet z wypróbuj z zasobami blokować m.in.
try (ResultSet rst = st.executeQuery()) {
// read the results
}
W ten sposób możesz mieć pewność, że ResultSet zostanie zamknięta bez względu na to, co się stanie.