프로그래밍

[MyBatis] 동적 SQL 구현하기 (choose 구문)

나노세컨드 2022. 8. 5. 14:31

구현하는 프로그램에서 평가 종류에 따라 외부 조인과 내부 조인을 따로 걸어줘야 하는 경우가 발생하였다. 

찾아보던 중 MyBatis에서 동적으로 SQL을 구현해 줄 수 있는 <choose> 구문이 있었고, 이를 정리해보고자 한다.

 

1. <choose>

  - 목적 : MyBatis에서 원하는 조건에 따른 쿼리를 구현하고자 할 때

  - 사용방법 : if ~ else 나 case when 구문과 같이 조건과 해당하는 경우를 나열하면 됨

  - 예시 : 조건1일 경우에 1번을 실행하고, 그렇지 않을 경우에 2번을 실행한다.

<select id="" parameterType="" resultType="">
	<![CDATA[
		SELECT *
  		  FROM 테이블 1
             , 테이블 2
        WHEERE 1 = 1
	]]>
    <choose>
    	<when test="조건1">
        	1번
        </when>
        <otherwise>
        	2번 
        </otheerwise>
    </choose>
</select>

종종 유사한 상황에서 자주 응용해서 사용할 듯 하다. 필요할 때 다시 와서 보고 적용하기.

반응형