728x90
반응형

ibatis에서 iterate를 사용해보자. 

 

반복문을 쓰는거다.

 

 

select를 10000번 포문 돌면서 하는게 빠른지

 

select 문에서 조건저을 iterate를 사용해서 길게 적고 한번 쿼리하는게 빠른지 비교해보기 위해서

 

진행하였다.

 

 

이건 ArrayList<String>을 던졌을 때

 

  <select id="getKey" parameterClass="java.util.List" resultClass="resi">
  SELECT id, register, name, location, year, sex, mobile, state,
  timeupdate, isregister FROM profile_register
  WHERE
  <iterate open="(" conjunction="or" close=")">
   id = #[]#
  </iterate>
 </select>

 

이건 ArrayList<Object>를 던졌을때
 <select id="getKeyforObject" parameterClass="java.util.List"
  resultClass="resi">
  SELECT id, register, name, location, year, sex, mobile, state,
  timeupdate, isregister FROM profile_register
  WHERE
  <iterate open="(" conjunction="or" close=")">
   id = #[].id#
  </iterate>
 </select>

 

 

위 방식으로 사용한다.

 

 

그리고 or 반복 말고 IN을 써서 진행.

 <select id="getKeyforObject" parameterClass="java.util.List"
resultClass="resi">
SELECT id, register, name, location, year, sex, mobile, state,
timeupdate, isregister FROM profile_register
WHERE id IN (
  <iterate open="(" conjunction="," close=")">
id = #[].id#
</iterate>

)
 </select>

 

In 구문은 테스트 안해봤다.

 

 

 

 

 

<select id="StudentsQry" parameterClass="list">select * from STUDENTS where ( id, name ) in <iterate open="(" close=")" conjunction="," > ( #[].id# , #[].name# ) </iterate><select> 

 

이렇게 짠다고 치면 

 

select * from STUDENTS where ( id, name ) in ( (1,'a'), (2,'b') ) 

 

이렇게 쿼리가 나오게 되는것이다. 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,