SQL 예외의 매개변수 인덱스가 범위를 벗어났습니다. 원인 및 해결 방법
"java.sql.SQLException: 매개변수 인덱스가 범위를 벗어났습니다. 범위(1 > 매개변수 수, 즉 0)"라는 오류가 발생하면 실망스러울 수 있습니다. 이 오류는 SQL 쿼리에 해당 매개변수에 해당하는 자리 표시자(?)가 없을 때 준비된 문에서 매개변수 값을 설정하려고 할 때 발생합니다.
오류 원인:
PreparedStatement에서 setXxx() 메서드를 사용하려고 시도했지만 SQL 쿼리 문자열에 지정된 매개변수에 필요한 자리 표시자가 없는 경우 이 오류가 발생합니다. index.
잘못된 코드의 예:
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); // This will fail. preparedStatement.setString(2, val2); preparedStatement.setString(3, val3);
해결책:
이 문제를 해결하려면 다음을 수행해야 합니다. 원하는 모든 매개 변수에 대한 자리 표시자(?)를 포함하도록 SQL 쿼리 문자열을 수정합니다. set.
수정된 코드의 예:
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); preparedStatement.setString(2, val2); preparedStatement.setString(3, val3);
참고:
추가 정보:
위 내용은 내 Java 코드에서 '매개변수 인덱스가 범위를 벗어났습니다.' SQL 예외가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!