열심히 Controller / Service / Mapper를 만들고, 희망찬 마음으로 URL을호출했는데... 결과적으로 Error가 발생하면 참으로 난감합니다.
분명히 Project를 실행하면... Started 라는 메시지를 봤는데... 곧이어...
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): [내 Mapper Interface 명.method명]
이 발생했는데... 죽어도 못찼겠다!!! 그럼 아래 2가지를 우선 확인해보면 됩니다.
- Mapper이름 및 method명 불일치
- DataSource를 위한 Configuration 파일 확인
1. Mapper 이름 및 method명 불일치
반드시 일치해야 하는 이름들이 있습니다.
@Mapper
public interface UserMapper {
ArrayList<UserDTO> selectUser();
}
<mapper namespace="com.example.ayoteralab.main.mapper.UserMapper">
<select id="selectUser" resultType="com.example.ayoteralab.main.dto.UserDTO">
바로 Mapper class의 method와 Mapper xml내 id 이름...
mapper namespace에 기재된 Mapper class의 위치...
resultType의 DTO class의 위치...
이게 다 맞는데도... 도무지 안된다!! 그렇다면 DatabaseConfiguration을 확인해 봅니다.
2. DataSource를 위한 Configuration 파일 확인
해당 Configuration class작성법은 기존에 블로그에 작성한 DB Connection Pool을 참조 부탁드립니다.
2019/11/10 - [SpringBoot] - [Spring Boot] 04. DB Connection Pool (Multi Source 포함)
해당 Configuration에는 SqlSessionFactory에 Mapper위치 및 DTO 설정을 하게 되는데... 이게 없을 경우 발생할 소지가 있습니다.
그럼 Error가 발생해도 걱정하지 말고 찬찬히 살펴보시기 바랍니다.
-Ayotera Lab-
댓글