데이터베이스에 데이터를 삽입하려고 시도하는 동안 "java.sql.SQLException: 매개변수 인덱스가 범위를 벗어났습니다."라는 메시지와 함께 오류가 발생했습니다. (1 > 매개변수 개수, 즉 0)".
이 오류는 SQL 쿼리에서 자리 표시자(?)를 지정하지 않고 preparedStatement에서 setXxx() 메서드를 호출할 때 발생합니다. . 예:
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)"; PreparedStatement preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); // Error occurs here
이 문제를 해결하려면 SQL 쿼리에 자리 표시자를 포함하세요.
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)"; PreparedStatement preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1);
매개변수 인덱스는 1부터 시작하며 SQL 문자열에서 자리 표시자를 인용할 필요가 없습니다. 그렇게 하면 동일한 오류가 발생합니다.
위 내용은 내 Java ReadyStatement에서 '매개변수 인덱스가 범위를 벗어났습니다.'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!