반응형
❗ java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0). 오류
💥 문제 상황
- PreparedStatement를 이용해 쿼리문을 실행시키려고 함
// 파라미터에는 ?가 들어가야 한다.
String sql1 = "update board set turn = {1} where id = {2}";
// 문자열이어도 '를 쓸 필요가 없다. - setString을 해주니까
String sql2 = "update board set turn = '?' where id = ?";
try (PreparedStatement preparedStatement = connection.prepareStatement(sql1)) {
preparedStatement.setString(1, turn.name());
preparedStatement.setInt(2, id);
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
❓ 원인
- 잘못된 방법으로 쿼리 작성 또는 파라미터 세팅
💡 해결
- 파라미터 개수 확인
- 문자열의 경우 불필요한 '나 "가 들어가지 않았는지 확인
참고
반응형
'Develop > Java' 카테고리의 다른 글
[JDBC] JDBC가 등장한 이유 (4) | 2022.04.15 |
---|---|
[Java] 사라진 SQLException (5) | 2022.04.07 |
[Java] 반환 타입은 스트림보다 컬렉션을 사용하자. (0) | 2022.04.03 |
[Java] 인터페이스를 사용하자! (0) | 2022.03.18 |
[Java] Inheritance(상속) vs Composition(조합) (0) | 2022.03.14 |