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