вы уверены, что есть 3?в sql?попробуйте распечатать весь подготовленный элемент в цикле for.
Я подозреваю, что многие из имеющихся у вас циклов могли работать не так, как вы ожидали, и в итоге в подготовленном состоянии было только 2 параметра.
Какое исключение было выброшено?Из API Java: Throws: SQLException - если параметрIndex не соответствует маркеру параметра в инструкции SQL;если возникает ошибка доступа к базе данных или этот метод вызывается на закрытом PreparedStatement
, также, если вы используете совместно соединение con и экземпляр con.preparedStatement, убедитесь, что вы правильно закрыли каждое из них