mybatis - foreach

Bob C·2021년 11월 3일
0

mybatis foreach의 사용법을 알아보자

foreach 기본 문법 형태

<foreach collection="sUser_type" item="type" open="(" close=")" seperator="or">
</foreach>

collection = 전달받은 인자, List나 Array형태만 가능
item = 전달받은 인자값을 alias 명으로 대체
open = 해당 구문이 시작될때 삽입할 문자열
close = 해당 구문이 종료될때 삽입할 문자열
seperator = 반복 되는 사이에 출력할 문자열
index = 반복되는 구문 번호이다. 0부터 순차적으로 증가

List 형태를 넘겼을 경우의 예제

// java code
List sUserTp = new ArrayList();
sUserTP.add("SP");
sUserTP.add("BX");

HashMap hm = new HashMap();
hm.put("sUser_age", 23);
hm.put("sUser_type", sUserTP);

// sqlmapper
<select id="getList" resultType="hashmap" parameterType="hashmap">
	SELECT
    	name, age
    FROM
    	TB_user
    WHERE
    	age = #{sUser_age} AND
        <foreach collection="sUser_type" item="type" open="(" close=")" separator=",">
        #{type.value}
        </foreach>

Array 형태를 넘겼을 경우의 예제

// java code
List sUserTp = new ArrayList();
sUserTP.add("SP");
sUserTP.add("BX");

HashMap hm = new HashMap();
hm.put("sUser_age", 23);
hm.put("sUser_type", sUserTP);

// sqlmapper
<select id="getList" resultType="hashmap" parameterType="hashmap">
	SELECT
    	name, age
    FROM
    	TB_user
    WHERE
    	age = #{sUser_age} AND
        <foreach collection="sUser_type" item="type" index="index" open="(" close=")" separator=",">
        #{type[index]}
        </foreach>
profile
내일은 내일의 에러가 뜬다

0개의 댓글