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

+ Recent posts