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') )
이렇게 쿼리가 나오게 되는것이다.
'SQL > IBATIS' 카테고리의 다른 글
iBatis 예제 - 1 (iBatis 기본설정 및 데이터 출력) (0) | 2014.02.12 |
---|---|
iBatis기본 설정 및 사용방법(회원가입 및 수정 탈퇴 예제) (0) | 2014.02.12 |
iBatis 동적인 SQL 항목별 요소 (0) | 2014.02.12 |
iBatis와 DBCP 바로알기 (0) | 2014.02.12 |
[iBatis] iterate 사용법 (0) | 2014.02.12 |
[iBatis] Dynamic SQL, iterate (0) | 2014.01.28 |
iBatis에서 iterate로 UNION 구현 (0) | 2014.01.28 |
iBatis 예제 - 3 (iBatis 프로시저(procedure)를 이용한 데이터 insert) (0) | 2014.01.28 |