본문 바로가기
프로그래밍 언어/Etc

[iBatis] 여러개 삭제시 List<String>이나 배열로 값을 받아서 처리하는 방법

by 우림 2015. 6. 25.

목록에서 여러개를 선택한 후에 삭제해야 하는 경우, iBatis로 어떤식으로 처리하면 좋을까요?

저도 샘플이 없어서 여러번 검색을 해서 간신히 작업을 했네요.

이번 기회에 iBatis 책이라도 사야 하는건지..ㅋ

요즘은 myBatis도 많이 사용한다고 하는데 iBatis랑 뭐가 다른지도 궁금합니다.


자, 체크박스의 이름이 uniqId라고 돼 있습니다.


저는 CeRelationVOSet에 uniqId라는 이름으로 List<String>로 선언해서 자동으로 값을 받게끔 처리를 했습니다.

스프링(Spring)으로 작업을 해보신 분들은 이게 어떻게 동작을 하는지 이해가 되실 겁니다.


uniqId를 HashMap의 uniqIdArr이라는 이름으로 담아서 iBatis 쿼리로 넘깁니다.


아래처럼 iterate을 사용해서 처리를 해주더군요.

OR UNIQ_ID IN ('1', '2', '3', '4') => 이런식으로 쿼리를 만들어 주겠죠?

<isNotEmpty prepend="OR" property="uniqIdArr" >
<iterate prepend="UNIQ_ID IN" property="uniqIdArr" open="(" close=")" conjunction=",">
     #uniqIdArr[]# 
</iterate>
</isNotEmpty>


이렇게 작업하니 잘 되네요~

댓글