MyBatis

이혜지·2021년 3월 12일
0

property : 파라미터명
prepend : 쿼리로 쓰일 문자
open : 구문이 시작될때 삽입할 문자열
close : 구문이 종료될때 삽입할 문자열


MyBatis foreach문 지원 태그

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

사용 예시

<select id="selectPostIn" resultType="domain.blog.Post">
  SELECT *
  FROM POST P
  WHERE ID in
  <foreach item="item" index="index" collection="list"
      open="(" separator="," close=")">
        #{item}
  </foreach>
</select>

공통 배열 데이터

String[] userArray = {"1", "2", "3"}

1-1. 배열 파라미터를 Map을 통해 넘겼을 경우
DAO

public List<Members> getAuthUserList(String[] userArray){
	HashMap<String, Object> map = new HashMap<String, Object>();
    map.put("userArray", userArray);
    return sqlSession.selectList("getAuthUserList", map);
}

user-Mapper.xml

<select id="getAuthUserList"  resultType="members">
SELECT m.*,a.name FROM members AS m 
JOIN authority AS a ON m.authority = a.authority
WHERE m.authority IN
<foreach collection="userArray" item="arr" open="(" close=")" separator=",">
 #{arr}
</foreach>
ORDER BY m.authority;
</select>

**주의 : collection을 꼭 넘겨주는 배열 변수 값과 동일하게 작성해야됨

참고 : https://java119.tistory.com/85

profile
공유 문화를 지향하는 개발자입니다.

0개의 댓글