728x90

회사에 입사하면서 마이바티스를 처음 쓰게 되었다. 기존에 있던 쿼리를 조금 수정하여 사용하려는 계획을 세웠고 업무를 진행하였다. 쿼리를 작성하여 원하는 결과가 나오는것을 확인한 뒤 기존 쿼리를 주석처리하고 그 밑에 내가 짠 쿼리를 붙여넣었는데 그 결과

The column index is out of range: 2, number of columns: 1.

라는 오류를 만나게 되었다.

 이 오류는 간단하게 쿼리에서 요구하는 파라미터 개수와 주어지는 파라미터 개수가 맞지않을때 발생하는 오류이다. 하지만 기존 쿼리와 비교해서 필요한 파라미터는 똑같고 단지 select 하는 컬럼만 추가했을 뿐인데 이런 오류가 나왔다는 것에 당황하였다. 쿼리를 다시 검증하고 테스트 케이스를 바꾸어도 결과를 똑같았는데 문제의 원인은 주석처리에 있었다. 기존 코드를 sql 주석으로 처리하고 밑에 새로운 쿼리를 붙여넣었는데 아마도 주석처리된 쿼리문에도 똑같이 파라미터값이 요청된 것으로 생각된다. 실제로도 기존 쿼리를 삭제했을 때 언제 그랬냐는 듯 원하는 결과가 출력되었다.

 마이바티스를 사용함에 있어서 익숙치 않아 발생했던 문제로 로그를 바탕으로 설마하는 것 까지 살펴보는 습관을 가져야만 할 것 같다.

+ Recent posts