2020년 2월 18일 화요일

[mybatis] foreach 사용하기

사용예시

다중 insert,udpate,delete 를 단일 트랜잭션에서 실행하고자 할때

조건 파라미터를 다이나믹하게 리스트로 받아서 데이터를 가져올때

아마 위 두가지 상황에 직면했을때가 대부분일것이다.

예)조건 파라미터를 리스트로 받아서 처리
( sql문의 parameterType은  vo 객체이고 변수로 companyIdList int [] 이 있음)

1.
AND (
<foreach collection="companyIdList" item="companyId" separator="OR">
COMPANY_ID = #{companyId}
</foreach>
)




<foreach collection="companyIdList" item="companyId" separator="OR" open="(" close=")">
COMPANY_ID = #{companyId}
</foreach>
2.



1 과 2의 결과는 같다.


예)다중 insert , updatem ,delete

( sql문의 parameterType은  array또는 ArrayLIst 가 되어야함)


<insert id="insertClientList" parameterType="list" (mybatis 기본 형)>

INSERT INTO CLIENT
(
COMPANY_ID
...
)
VALUES
<foreach collection="list" item="clientVo"(alias 를 줌)  separator="," index="i">
(
#{clientVo.companyId}
        ...
)
</foreach>

updatem ,delete 는 insert와 비슷 하다.



댓글 1개:

[oracle]옵티마이저(Optimizer)와 실행 계획, 실전 튜닝 기초 완벽 정리

[Oracle SQL] 옵티마이저(Optimizer)와 실행 계획, 실전 SQL 튜닝 가이드 이 가이드에서는 오라클 데이터베이스의 핵심 엔진인 옵티마이저의 원리를 이해하고, DBeaver와 SQL Developer를 활용하여 실제 쿼리의 실행 계획을...