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.