У меня есть список параметров запроса в моем URL-адресе, которые я хочу использовать в своей java веб-службе для выполнения запроса к таблице
public Set<Result> getResult(String query, List<String> sortedQueryParamsValue) {
Connection connection = getConnection();//jdbc connection
//query is some thing like: select * from table A where status = ? and Id = ?
try (PreparedStatement getStatement = connection.prepareStatement(query)) {
for (int i = 0; i <sortedQueryParamKeys.size(); i++) {// sortedQueryParamsValue length is matching the number of values I need for the query and the order matches the order I am expecting
String value = sortedQueryParamsValue.get(i);
getStatement.setString(1, value);
}
try (ResultSet rs = getStatement.executeQuery()) {
while (rs.next()) {
//add to the list of results
}
}
//return the resultset
}
Причина, по которой я всегда использовал 1 в getStatement.setString(1, value);
- это то, что я думал, что на каждой итерации один ?
заменяется значением, но в конце я получаю какое-то исключение, говорящее java. sql .SQLException: IN or OUT param отсутствует в позиции 2.
Кто-нибудь знает, что я здесь делаю не так?