티스토리 뷰

반응형

목차

     


    Mybatis에서 if else 사용 하기

     

     

    Spring Boot와 Mybatis를 사용해 SQL문을 작성하게 될 때 동적으로 SQL을 만들어야 하는 경우가 반드시 생기기 마련입니다. 보통 조건문을 사용할 때는 if와 else문을 사용하게 되는데요. 아쉽지만 Mybatis에는 if문은 존재하지만 else문을 사용할 수 없습니다.

     

    Mybatis에서 if else 문법과 동일하게 조건문을 사용할 수 있는 방법이 존재하는데 바로 choose 문법입니다. 이 choose 문법을 어떻게 if else 문법과 동일하게 사용해야 하는지 알아보도록 하겠습니다.

     

     

     

     

    조건이 하나인 경우

     

    조건이 한 가지인 경우 아래와 같이 사용할 수 있습니다.

    <choose>
    	<when test = "조건"> // if와 동일
    		// 실행할 구문 입력
    	</when>
        
    	<otherwise> // else와 동일
    		// 실행할 구문 입력
    	</otherwise>
    </choose>

     

    가장 단순한 구조라고 할 수 있지요.

     

     

     

     

    조건이 여러 개인 경우

     

    아래와 같이 조건이 여러 개인 경우 약간의 혼동이 올 수 있습니다.

    <choose>
        <when test = "조건1"> // if와 동일
        	// 실행할 구문 입력
        </when>
    
        <when test = "조건2"> // else if와 동일
        	// 실행할 구문 입력
        </when>
    
        <otherwise> // else와 동일
        	// 실행할 구문 입력
        </otherwise>
    </choose>

     

    조건이 한 가지인 경우 when은 단순히 if와 동일한 기능을 수행하지만, 복수라면 얘기가 달라집니다.

    2가지 이상의 조건이 있는 경우 when은 else if의 기능도 병행합니다.

     

    choose의 문법 자체가 여러 개의 when 중에서 true의 조건이 한 가지라도 수행된다면 다음 조건은 수행하지 않습니다.

    기본 문법은 if와 else if, else 세 가지를 사용한다면, choose 문법에서는 when이 if와 else if의 기능을 둘 다 수행합니다.

     

     

     

     

    응용 방법

     

    하나의 조건문에 여러 가지 조건을 넣을 수도 있습니다. 이런 방법은 if문과 동일하죠.

     

    <choose>
        <when test = "값1 != null && 값1 == 'tistory'"> // if와 동일
        	// 실행할 구문 입력
        </when>
    
        <when test = "값1 == 'linebeats' || 값1 == '라인비츠'"> // else if와 동일
        	// 실행할 구문 입력
        </when>
    
        <otherwise> // else와 동일
        	// 실행할 구문 입력
        </otherwise>
    </choose>

     

    위와 같이 and를 의미하는 &&와 or을 의미하는 ||를 적절하게 응용해서 사용하면 편리합니다.

     

     

     

     

    마무리

     

    이상 Mybatis에서 if else처럼 사용할 수 있는 방법에 대해서 알아보았습니다.

     

     

    반응형