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개:

[lunux]리눅스 폴더별 용량 확인

리눅스 폴더별 용량 확인 조회 하고자 하는 디렉토리 리스트가있는 경로로 이동후 du -h --max-depth=1