HongCat 개발 스토리

2. Mybatis 동적쿼리 본문

FrameWork

2. Mybatis 동적쿼리

홍캣 2019. 12. 4. 10:32

2019.12.04

1. 동적쿼리(Dynamic Query)란?

  • 일반적으로 검색 기능이나 다중 입력 처리 등을 수행해야 할 경우 SQL을 실행하는 DAO를 여러 번 호출하여 실행하였지만 마이바티스에서는 이를 동적으로 제어할 수 있는 구문을 제공하여 좀 더 쉽게 쿼리를 구현할 수 있도록 기능을 제공함.

2. 동적 쿼리동적 쿼리 지원 구문

1. if
2. choose(when,otherwise)
3. trim
4. foreach

. if 구문

  • 동적 쿼리를 구현할 때 가장 기본적으로 사용되는 구문
  • 특정 조건을 만족할 경우 안의 구문을 쿼리에 포함시킴
  • 필요로 하는 조건이 1개 이상 일시 if 구문을 여러 개 사용할 수 있음 

ex) <if test="조건식">

         .....

       </if>

 

2. choose구문

  • 자바의 if-else 혹은 switch, 오라클의 choose구문과 유사하며 주어진 구문 중 한가지만 수행하고자 할 때 사용 
  • when 은 ,if문과 흡사하며, otherwise는 else또는 default와 흡사함

3. trim구분

  • 쿼리 구분의 특정 부분을 없앨 때 사용 됨 
  • 태그 안의 내용이 완성될 때 처음 시작할 단어와 시작 시 제거해야 할 단어를 명시함

ex) <trim prefix="where" prefixOverrides="AND | OR">

       ...

    </trim>

4. foreach 구분

  • 동적 쿼리를 구현할 때 collection에 대한 반복 처리를 제공 함. 
속성 설명
item 반복될때 접근 가능한 객체 변수
index 반복되는 횟수를 가리키는 변수
collection

반복에 쓰일 collection (array, list,map....)

open 첫 반복 시 여는 문자열
separator 반복되는 객체를 나열할 때 구분하기 위한 구분자
close 마지막 반복 시 포함할 닫는 문자열

 

'FrameWork' 카테고리의 다른 글

4. Bean 등록 Annotaion  (0) 2019.12.06
Maven 사용을 위한 이클립스 환경설정  (0) 2019.12.05
3.Spring과 Maven  (0) 2019.12.05
동적쿼리 if문을 이용한 회원정보 조회  (3) 2019.12.04
1. 프레임워크란?  (0) 2019.12.02
Comments