Ще трябва да премахнете query
аргумент от вашия executeQuery
обадете се. Ако предоставите параметъра, заявката ще бъде изпълнена без обвързване на стойности (вижте Изявление
за подробности) - ето защо синтаксисът (т.е. ?
) е невалидно.
Изпълнете заявката по следния начин:
ResultSet rst = st.executeQuery();
Като странична забележка:винаги трябва да обвивате Connection
, PreparedStatement
и ResultSet
с опитайте с ресурси блок, напр.
try (ResultSet rst = st.executeQuery()) {
// read the results
}
По този начин можете да сте сигурни, че ResultSet
ще бъде затворен, независимо какво се случи.