일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- bootstrap
- javascript
- 우분투 mysql 비밀번호 없이 로그인 될때
- 자바스크립트비밀번호검증
- 구글 OTP 인증
- php 특정 문자열 취환
- svn 충돌 해결 resolve
- 파라미터 & 오류
- (using password: YES)" when trying to connect
- 세로 중앙 정렬
- 비밀번호정규식
- 아파치 웹 서버의 정보 숨기기
- usb efi 시스템 파티션 삭제
- PHP 정규식 예제
- magic bytes
- 비밀번호검증정규식
- mysql root 비밀번호 변경
- PHP 구글 OTP 연동
- apache mod rewrite
- svn 충돌 해결 resolved
- html pdf 변환
- wkhtmltopdf 실행 오류
- group_concat 구분자
- PHP 구글 OTP 인증
- mysqldump: Got error: 1045
- 부트스트랩4 세로 중앙 정렬
- libxrender1
- JQuery checkbox 컨트롤
- bootstrap modal
- modsecurity 설치
- Today
- Total
투덜이 개발자
MyBatis에서 사용하는 <foreach> 사용법 본문
MyBatis에서 사용하는 <foreach> 사용법
순서
1. <foreach> 이해
2. 예제
1. <foreach>
전달받은 collection 인자 값을 바탕으로 반복적인 SQL 구문을 작성할 때 사용합니다. 주로 데이터 타입이 동일한 다수의 배열 데이터를 검색조건에 반영해야 할 때, OR 또는 IN 구문에서 많이 사용합니다.
<foreach>의 속성 다음 6가지가 있습니다.
1) collection 속성 - 전달받은 인자를 속성값으로 삽입합니다. Map, Array, List, Set 등과 같은 반복 가능한 객체를 전달할 수 있습니다.
2) item 속성 - collection속성에서 전달받은 collection 인자값을 대체할 '이름'을 속성 값으로 삽입합니다.
3) open 속성 - 구문이 시작될때 삽입할 문자열을 속성 값으로 삽입합니다.
4) close 속성 - 구문이 종료될때 삽입할 문자열을 속성 값으로 삽입합니다.
5) separator 속성 - 반복되는 구문 사이에 삽입할 문자열을 속성값으로 삽입합니다.
6) index 속성 - index값을 부를 일종의 변수명을 속성값으로 삽입합니다. 태그 내에 #{index}를 통해 호출할 때 0부터 반환됩니다.
2. 예제
전달받은 배열
Java 코드
int[] bnoArr = {1,2,3,4,5};
public List<BoardVO> getList(int[] bnoArr) throws Exception;
=> getList(bnoArr);
<select id="getList" resulttype="BoardVO">
select bno, title, content, writer from tbl_board where bno IN
<foreach item="bno" collection="bnoArr" open="(" close=")" separator=",">
#{bno}
</foreach>
</select>
결과 쿼리
select bno, title, content, writer from tbl_board where bno IN (1,2,3,4,5)
String typeArr = {T,C}
public List<BoardVO> getList(String[] arr, String keyword) thorws Exception;
=> getList(typeArr,keyword);
<select id="getList" resulttype="BoardVO">
select bno, title, content, writer from tbl_board where
<trim prefixOverrides="OR">
<foreach item="type" collection="typeArr">
<trim prefix="OR">
<choose>
<when test="type == 'T'.toString()">
title like '%'||#{keyword}||'%'
</when>
<when test="type == 'C'.toString()">
content like '%'||#{keyword}||'%'
</when>
<when test="type == 'W'.toString()">
writer like '%'||#{keyword}||'%'
</when>
</choose>
</trim>
</foreach>
</trim>
</select>
결과 쿼리
select bno, title, content, writer from tbl_board where
title like '%'||#{keyword}||'%' OR content like '%'||#{keyword}||'%'
https://kimvampa.tistory.com/180
<foreach item="item" index="index" collection="ides.split(',')" open="(" separator="," close=")">
'${item}'
</foreach>
https://it-developer.tistory.com/4409
'Program Language > Java' 카테고리의 다른 글
아파치 웹 서버(apache httpd) 와 톰캣 연동하기 - tomcat connector(mod_jk) , reverse proxy(mod_proxy) (0) | 2023.02.09 |
---|---|
server.xml 설정 (0) | 2023.02.07 |
[Java] HashMap을 이용하여 같은 값을 가진 배열(Array)의 요소값 분류 (0) | 2022.11.01 |
[Java] MySQL, MariaDB 연동 (0) | 2022.08.31 |
JAVA 버전 변경이 안 되는 경우 (0) | 2022.07.18 |