본문 바로가기
개발/spring

[Spring] mybatis foreach 사용예제 (java코드포함)

by 아크투어 2023. 4. 14.
반응형

1. mybatis와 foreach

  • MyBatis는 관계형 데이터베이스와 상호 작용하는 편리한 방법을 제공하는 Java 기반 지속성 프레임워크이다.
  • MyBatis의 요소 foreach는 목록이나 배열과 같은 컬렉션을 반복하고 컬렉션의 요소를 기반으로 동적 SQL 문을 생성하는 데 사용됩니다.

mybatis

 

2. foreach속성

  • item: 컬렉션의 현재 항목을 나타내는 변수의 이름입니다.
  • index: 컬렉션에 있는 항목의 현재 인덱스를 나타내는 변수의 이름입니다.
  • collection: 반복할 컬렉션의 이름입니다.
  • open: 컬렉션의 첫 번째 항목 앞에 추가할 문자열입니다.
  • close: 컬렉션의 마지막 항목 뒤에 추가할 문자열입니다.
  • separator: 컬렉션의 각 항목 사이에 추가할 문자열입니다.
//기본형식
<select id="selectUsers" parameterType="java.util.List" resultType="User">
  SELECT * FROM users WHERE id IN
  <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
    #{item}
  </foreach>
</select>

 

 

3. Spring+mybatis 예제

//VO파일
public class ComSearchVO {
    
    /* List형파라메터 */
    private List<String> searchList = new ArrayList<String>();
 
    public List<String> getSearchList() {
        return searchList;
    }

    public void setSearchList(List<String> searchList) {
        this.searchList = searchList;
    }
}


//service 또는 controller
public Object selectCommonAlarmCodeList() throws Exception {
	
    ...
    
    List<String> paramList = new ArrayList<String>();

    paramList.add("A");
    paramList.add("B");
    paramList.add("C");

    ComSearchVO searchVO = new ComSearchVO();
    searchVO.setSearchList(paramList);
    
    list = dao.selectUserList(searchVO);
    
    ...
}


//mybatis xml
<select id="selectUserList" parameterType="ComSearchVO" resultMap="userList">
    SELECT * 
	  FROM tb_users u
     WHERE 1=1
	   AND u.user_code IN		 
       <foreach collection="searchList" item="item" open="(" close=")" separator=",">
           <![CDATA[ #{item} ]]>
       </foreach>
</select>

 

 

반응형

'개발 > spring' 카테고리의 다른 글

[Spring Boot] 메일 발송하기 예제 (Gmail)  (0) 2023.04.27