본문 바로가기
Develop Note

Spring Mybatis 에러 5가지만 알면 해결!!

by Review Note 2017. 7. 18.


Spring Mybatis Error 해결 방법


Spring Mybatis 에러는 제 경험상 5가지만 체크하면 99.8% 정도는? 해결 가능!


Error :  java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for​ ~

이 녀석을 이젠 더 이상 보기 싫다!!!!

 

1. mapper id Check!!

 

mapper 파일 ( 쿼리문을 모아두는 xml파일 ) 에서 <select id='seungje'></select>

seungje가 쿼리문이 호출되는 DAO와 같은 java파일에서 값이 같아야 하는데, 다르면 에러가 발생합니다. 


dao에서 seungje라는 select 쿼리문을 부르고 싶은데 id가 다르니 부를 수 없는 것이죠


2. Parameter와 bean의 필드명이 틀린 경우


3. mapper 파일 namespace 가 다를 경우


1번과 비슷한 개념인 것 같습니다 해당 쿼리문을 호출할 때 namespace와 id를 통해 부르게 되는 것이죠

namespace로 mapper 전체를 찾고 id를 통해 그 안에서 요청한 쿼리를 찾게 되는 것입니다.


4. mapper에 정의된 namespace 중복될 경우


당연히 다른 경우에 문제가 되면, 중복될 경우에도 문제가 되겠죠? 2개 중에 어떤 걸 찾아야 할지 모르니까요~



5. MyBatis config 파일에 정의가 되어 있지 않거나 Spelling이 틀린 경우


MyBatis 설정파일로써 config dtd를 입력하고 밑에 <configuration> </configuration> 태그를 만들어 주지 않으면 


에러가 발생합니다 반드시!! 빈 태그라도 만들어 주셔야 합니다. 


추가적으로 설정은 config이고 쿼리문을 모아두는 곳은 mapper입니다 2개의 dtd가 다릅니다 꼭 확인하세요

저는 이것 때문에 하루를 날렷네요 ㅠ





쿼리문을 모아두는 mapper 파일





MyBatis 설정을 개별적으로 관리하는 설정파일


빨간색 상자 부분을 잘 확인하셔야 합니다 






blog 승제노트






↓ 공감, 댓글 부탁드려요 ↓

댓글