티스토리 뷰

MyBatis를 사용하기 위해서는 인터페이스로 해당하는 Mapper를 작성하고 같은 위치에 실행할 SQL이 있는 XML 매핑 파일을 만들어야 합니다. application.yml이나 application.properties를 수정해서 Mapper가 실행할 XML 파일을 원하는 위치로 이동할 수도 있습니다.

오류 상황

  • src/main/java/hello/itemservice/repository/mybatis/ItemMapper.java
  • src/main/resources/hello/itemservice/repository/mybatis/ItemMapper.xml

Mapper Interface와 대응되는 XML 파일에 오타가 존재하지 않고 위와 같이 같은 위치에 파일이 존재하지만,

해당하는 문장을 찾을 수 없다는 BindingException이 발생하였습니다.

해결 방법

IntelliJ를 사용하는 경우 쉽게 실수할 수 있는 문제입니다. XML 파일은 resources 하위에 설정하게 되는데 resources 하위에는 package 경로가 아닌 directory 경로로 접근합니다.

resources 하위에도 package처럼 경로를 생성하면 package처럼 directory가 생성될 줄 알았지만, 그렇지 않습니다.

 

hello.itemservice.repository.mybatis라는 이름을 가진 하나의 디렉터리가 생성되는 것입니다. 따라서 MapperScan이 동작할 때 원하는 hello/itemservice/repository/mybatis라는 경로가 존재하지 않기에 오류가 발생하는 것입니다.

 

해결하기 위해서는 directory를 생성하듯 하나씩 directory를 만들어서 해당 경로에 XML 파일이 위치하도록 해야 합니다.

참고

https://chati.tistory.com/164

'Etc' 카테고리의 다른 글

[Web] 웹 서버(WS)와 웹 애플리케이션 서버(WAS)  (4) 2023.04.15
아스키코드와 유니코드  (2) 2022.11.27
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Total
Today
Yesterday