2013년 7월 30일 화요일

MyBatis 에서 조건절(WHERE)에 IN 이 들어 있는 경우

인터넷을 뒤저보니 IN 절에 들어갈 자료를 쉼표(,) 구분자로 일단받아서 DB의 function을 통하여 수정하는 방법을 구현해놓은 것을 찾았다. 하지만 해당의 경우 DB의 함수를 사용해야 한다는 점이 있어 다른 방법을 강구하던중 약간 삽질을 하기는 했지만 Query가 들어가는 XML에 foreach 문을 사용하여 자료를 넣는 방법을 찾았다 방법은 밑에와 같으며 AND column1 IN ( #{item} ) 간단한 설명을 하자면 자바쪽에서 배열로 IN 절에 들어갈 값들을 만든후 MyBatis에서 위와 같이 item으로 받으면 foreach 문을 통하여 DB 상의 함수가 돌아가지 않고도 MyBatis 쪽에서 AND column1 IN ('1', '2', '3') 와 같은 결과를 얻을 수 있다.