본문 바로가기
Category/Project

[팀프로젝트] Mybatis 매핑에러 - BindingException

by developer__Y 2024. 1. 29.

Mybatis를 사용하면서 mapper.xml에 메소드 파라미터 변수명을 1개 사용할때는 문제없이 잘 되는데,

2개이상 사용하게되면 Bindingexception이 매번 발생하는 문제가 생겼다.

 

 

 

Mapper.xml 파일

 

다음과 같은 쿼리 구문에서 파라미터로 #{empno}와 #{searchEmpno}  2개를 받아와 출력하는데,

 

잘못된 예 :

 

파라미터가 1개일때처럼 Dao의 메소드또한 똑같이 만들어줬는데도 매핑이 되지않는 문제가 자꾸 발생한다.

인터넷을 뒤지다 결국 찾아낸 해답은

파라미터가 2개이상일때는 Mybatis에서 문자열이 아니라, Map형식으로 받는다는것이었다.

따라서, 메소드 파라미터를

 

바른 예:

 

다음처럼 파라미터로 Map형식을 받아와, 컨트롤러 단에서 기존에 String 변수 2개를 넣어주던것을 

Map객체를 생성하여 key-value 형식으로 넣어주니 정상적으로 매핑을 하였다!

 

 

결론

 

Mybatis에서 파라미터를 2개이상 받아올때는 Map형식으로 변수들을 넣어서 전달하자!