mybatis에서 조건문 쓰는 것은 간단하다.

if나 when을 써주면 된다.


if문


when문 


test에 조건내용을 써주면 되는데 연산문은 일반적이다.


==, eq, !=, or, and 뭐 이런식으로 써주면 된다.


그렇다면 반복문은 어떻게 할 것인가?


예를들어 query의 where절에 in을 쓰고 싶다.


회원아이디들을 여러개 조회해와서 그 아이디가 있는 데이터만 가져오고 싶은 것이다.


요런 쿼리가 있다고 치자. 물론 서브쿼리로 간단히 할수 있다


select * from tblEventJoiner where event_no=#{event_no} and userid in (select userid from tblMember where smsyn = 'Y')


그런데 서브쿼리를 썼더니 시간이 너무 많이 걸린다. (물론 저런 간단한 쿼리에서는 걸리지않는다. 조인이 네다섯개 이상 걸린 경우)


프로시져를 짜도 되지만...이게 귀찮다면 다음과 같이 해보자.


1. 우선 SMS수신동의자 회원을 가져온다. (query.xml)


2. DAO부분에서 이 리스트를 받아 다시 query를 조회한다. (eventDAO.java)


3. 다시 query.xml로 돌아가서 받아온 회원아이디 리스트로 where절에 in을 넣어보자




- The END -

+ Recent posts