1. 정의
어떤 조건에 대해 조회하는 대상 (ex. column명, table명, DB명)이 고정되어 있지 않고 parameter를 통해 그 대상들을 상황에 맞게 조회가 가능하다.
if문과 choose문을 가장 많이 사용하며, xml mapper에 지정하게 된다.
2. 동적 sql을 사용하는 경우
ㄱ. 컴파일시 sql 문장이 확정되지 않는 경우 : where 조건 뿐만 아니라 select 항목이 동적으로 변할 수 있는 상황일 때
3. 종류
ㄱ. if : 단일 if문. 선택적 문자열 검색 가능.
파라미터로 넘어온 property 객체의 메소드를 직접 호출 가능.
<if test="파라미터1 != null and 파라미터2 != null></if>
<if test='파라미터 != null and 파라미터 == "A"'></if>
<if test='파라미터 != null and (파라미터 equals "A".toString())'></if>
<if test='파라미터 != null and 파라미터.equals("A")'></if>
<if test='파라미터 != null and 파라미터.equalsIgnoreCase("A")'></if>
파라미터로 null이 넘어올 수 있으니 exception 방지를 위해 null인지 비교하고 난 후, 다음으로 넘어온 property가 스트림 객체니까 대, 소문자를 안 가리고 비교하라고 .equals 메소드를 호출함.
ㄴ. choose (when, otherwise)
ㄷ. trim (where, set)
ㄹ. foreach
'Framework > Spring' 카테고리의 다른 글
MyBatis :: selectList와 selectOne (3) | 2016.02.15 |
---|---|
MyBatis :: ConnectionFactory (0) | 2016.01.19 |
MyBatis :: Java app example (0) | 2016.01.18 |
JDBC :: 메뉴얼 (0) | 2016.01.15 |
MyBatis란? (0) | 2016.01.13 |