Mybatis에서 Map 또는 List 값을 조회하기 위해서는 foreach를 사용하면 된다.
foreach
collection : 넘어온 파라미터의 반복하기 원하는 파라미터를 입력하여 주면 된다. 예를 들어 vo의 testMap이라는 Map이 있다면 collection에 testMap을 넣어주면 된다.
item : List의 경우 순차적으로 반복하여 값이 저장된다. item을 data라고 하였을 경우 WHERE col = #{data} 이런식으로 사용이 가능하다. Map에서는 key의 value가 저장된다.
separator : 반복 되는 사이에 출력 할 문자열
open : 해당 구문이 시작될때 삽입되는 문자열
close : 해당 구문이 종료될때 삽입되는 문자열
index : List의 경우 index 번호, Map의 경우 key 값이 저장된다.
Mybatis에서 Map 조회
<select id="아이디 입력" parameterType="맵 or 리스트 or VO" resultType="원하는 타입 resultMap을 이용하여도 됨">
SELECT TEST
FROM TEST_TBL
WHERE
<foreach collection="data" item="value" index="key" separator="and">
(KEY = #{key} AND VALUE = #{value})
</foreach>
</select>
Mybatis에서 List 조회
<select id="아이디 입력" parameterType="맵 or 리스트 or VO" resultType="원하는 타입 resultMap을 이용하여도 됨">
SELECT TEST
FROM TEST_TBL
WHERE
TEST_VAL IN
<foreach collection="list" item="value" index="idx" separator="," open="(" close=")">
#{value}
</foreach>
</select>
Mybatis Map안에 List 조회
<select id="아이디 입력" parameterType="맵 or 리스트 or VO" resultType="원하는 타입 resultMap을 이용하여도 됨">
SELECT TEST
FROM TEST_TBL
WHERE
<foreach collection="mapData" item="value" index="key" separator="AND">
#{key} IN
<foreach collection="value" item="item" index="idx" separator="or" open="(" close=")">
#{item}
</foreach>
</foreach>
</select>
Map안에 있는 List를 조회 할 때는 Map의 value를 collection에 넣어주면 된다.
'프로그래밍 > 스프링 & 스프링 부트' 카테고리의 다른 글
인텔리제이 & 스프링 부트 & React 개발환경 세팅 (1) | 2023.08.04 |
---|---|
[Spring] 스프링 Logback 설정 및 사용법 (0) | 2020.04.03 |
스프링 서블릿 api를 이용한 파일 업로드, 다운로드(3)-수정, 삭제 (0) | 2019.06.25 |
스프링 서블릿 api를 이용한 파일 업로드, 다운로드(2)-다운로드 (0) | 2019.06.24 |
스프링 MyBatis foreach 여러개 다중 insert (list insert) (0) | 2019.06.21 |