본문 바로가기
Develop/Java

[Java] java.sql.SQLException: Parameter index out of range

by 연로그 2022. 4. 4.
반응형

❗ 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();
}

 

❓ 원인

  • 잘못된 방법으로 쿼리 작성 또는 파라미터 세팅

 

💡 해결

  • 파라미터 개수 확인
  • 문자열의 경우 불필요한 '나 "가 들어가지 않았는지 확인

참고

반응형