Sie müssen die query entfernen Argument aus Ihrer executeQuery Forderung. Wenn Sie den Parameter angeben, wird die Abfrage ausgeführt, ohne Werte zu binden (siehe Anweisung
für Details) - deshalb ist die Syntax (also der ? ) ist ungültig.
Führen Sie die Abfrage wie folgt aus:
ResultSet rst = st.executeQuery();
Als Nebenbemerkung:Sie sollten Connection immer umbrechen , PreparedStatement und ResultSet mit einem Versuch-mit-Ressourcen blockieren, z.
try (ResultSet rst = st.executeQuery()) {
// read the results
}
Auf diese Weise können Sie sicher sein, dass das ResultSet wird geschlossen, egal was passiert.