XML에서 동적 SQL 처리
- OGNL(Object Graph Navigation Language)
- ex) <c:if ... , <c:forEeach ...
- 프로퍼티의 값을 가져오거나 설정하기 위한 언어..
- 웹워크, JSTL 등에서 활용, mybatis
- mybatis가 제공하는 xml element
- if : 조건 처리
- choose( when, otherwise) : 조건 그외 처리..
if 엘리먼트
- 모든 조건에 대해 처리하고 만족하는 조건의 결과를 모두 적용합니다
- 동적 query : 위와 같이 sql 구문이 조건에 따라서 변경되는 것을 말한다.
- 여러 논리 조건
<if test = "user != null and sal != 0">
choose(when, otherwise)
- 조건 지정과 그 외에 대한 처리를 동적인 sql에서 진행할 때 활용한다
trim(where) 엘리먼트
- if 엘리먼트가 조건 처리에서 where 구문에 대한 처리를 보완하기 위해 사용한다. (WHERE 1=1)
prefix : 처리 후 엘리먼트의 내용이 있으면 앞에 붙여줌
prefixOverrides: 처리 후 앞에 해당 문자가 있으면 자동으로 지움
foreach 엘리먼트
- 동적 sql을 loop 문으로 반복처리 해야 할 경우
- 조회 조건에서 부서를 여러 개 검색조건으로 처리할 때
- 속성
- collection : 배열의 목록 리스트를 가져옮 ex) jstl의 items
- item : 배열의 목록 단위 ex) jstl의 var
- index : 몇번째 값인지 나타내는 index, 0
- open : 목록에 값을 가져와 설정할 때, 앞에 붙여 주는 문자
ex) deptno in ( - close : 목록에 값을 가져와 설정한 후, 마지막에 붙여주는 문자.
ex) deptno in ( .... ) - separator : 목록에 값을 가져와 설정할 때 값들 사이에 붙여주는 문자열 (delimiter)
ex) deptno in (10, 20, 30, 40);
다중 선택 처리..
- 화면
- 검색할 부서 []10 []20 []30
- DTO, VO
private String[] deptnos;
setDeptnos(String[]), getDeptno() - forEach를 활용한 동적 sql
'programming > web' 카테고리의 다른 글
[spring]첨부파일 등록 (0) | 2017.06.22 |
---|---|
[spring]mybatis 연결 (0) | 2017.06.08 |
[spring]autowire, qualifier (0) | 2017.06.08 |
[spring]ViewResolver (0) | 2017.06.07 |
[spring]ModelAndView, redirect, forward, session (0) | 2017.06.07 |