[SQL] 다이나믹 쿼리 Dynamic Query

oliveYeong·2023년 1월 10일

💻동적쿼리

정적쿼리 : 어떤 조건 또는 상황에도 변경되지 않는 쿼리문
동적쿼리 : 특정 조건들이나 상황에 따라 변경되는 쿼리문

  • 다이나믹쿼리의 조건문을 통해서 다른 조건이 대입해서 중복되는 쿼리들을 최소화 시킬 수 있다.

🎲다이나믹 쿼리 종류

1. if

  • 마이바티스에서 가장 많이 사용되는 요소.
  • 파라미터로 받아온 값을 조건절로 걸러서 조건절 등을 추가할 때 사용한다.
  • 파라미터 타입 안에 다른 타입(클래스)가 포함되어 캡슐화를 이룰 경우, .(dot) 연산자로 변수 접근이 가능하다.

2. Choose

  • else if가 없기 때문에 대신 choose로 사용된다.
<choose> : 크게 감싸고,
<when test="조건"> : 조건을 걸고,
<otherwise> : 기타요소를 넣는다.
</otherwise>
</when>
</choose>

3. Trim (where, set)

  • 여러 구문 중 하나만 실행
  • WHERE 조건을 자동으로 생성하며 문법상 맞게 맞춰준다.
//where 사용시
1. <where>
		<if test="조건">
     	</if>
   </where>
   
2.  <trim prefix="WHERE" prefixOverrids="AND">
			<if test="조건">
            </if>
	</trim>

//set 사용시
1.  <trim prefix="SET" suffix Overrids=",">
			<if test="조건">
            </if>
	</trim>

4. forEach

  • Collection의 반복 처리 기능을 담당한다.
<foreach collection="array" item="배열명" separator=",">
	#{배열명}
</foreach>
  • Collection에는 배열이나 리스트만 사용이 가능하다.
  • Separator는 안에 담긴 Object들을 구분시켜줄 기호이다.
profile
[올리 공부기록] 한계단씩 꾸준히 성장하기

0개의 댓글