본문 바로가기
Error

org.apache.ibatis.binding.BindingException(바인딩익셉션)

by 함준혁 2023. 4. 28.

Mybatis를 이용하여 mapper.java와 mapper.xml 생성 후 테스트 코드를 실행을 하였습니다.

testRead 실행 결과는 이와 같았습니다

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ceojun7.mapper.MemberMapper.read

 

MemberMapper.read를 찾을 수 없다는 뜻이였습니다.

 

오류가 날만한 상황은 이와 같습니다

1. com.ceojun7.mapper.MemberMapper 인터페이스에서 read라는 메소드가 정의되어 있지 않은 경우
2. MemberMapper.xml 의 오류 ( 코드누락 등 )
3. MemberVO의 오류

확인해보니 모두 정상적으로 작성이 되어있었습니다.


4. root-context 설정의 오류

다음과 같이 mybatis scan도 잘 되어있었고

네임스페이스도 이와 같이 적상적으로 작성되어있었습니다.

고민을 하던 중, 

resources의 경로가 잘못되어있을 수도 있겠다는 생각이 들었습니다. ( 어쩌다가 그런 생각을 했을까요? )

그리고 인텔리제이의 설정을 변경했습니다.

톱니바퀴 모양 클릭 후

Flatten Packages 체크 해제

 

 

Flatten Packages 체크 해제 전
Flatten Packages 체크 해제 후

체크를 해제하면 이와같이 패키지들이 묶이지 않게 됩니다.

체크를 해제했지만
resources 밑의 

com.ceojun7.mapper는 패키지들이 아직도 묶여있는걸 확인했습니다.

그 이유는 resources 하위 폴더들은 .(점) 을 하나의 문자열로 인식하는 것이 이유였습니다.


그래서 com/ceojun7/mapper 가아닌 하나의 폴더였던 것이였습니다.


그래서 이와 같이 수정했습니다.

 

폴더를 하나씩 만들어주고 MemberMapper.xml을 옮긴 후
오류가 해결되었습니다.

728x90

'Error' 카테고리의 다른 글

NullPointException..  (0) 2023.04.21