Study/Java

[MyBatis] 부등호, 비교연산자(<, >, <=, >=, &) 사용 방법

momong'-' 2020. 12. 24. 01:03

마이바티스를 쓰면서 쿼리문에 비교문을 사용하는 경우가 많은데 < 같은 부등호를 사용하면 오류가 발생한다.

<!-- 잘못된 코드 -->
<select id="getEmployeeSalary">
    SELECT 
    	EMPLOYEE_ID
    FROM
    	EMPLOYEE
    WHERE
    	SALARY < 10000
</select>

해결방법 - 1 : CDATA

<![CDATA[ "부등호"]]>

<!-- <![CDATA[  ]]> 사용 -->
<select id="getEmployeeSalary">
    SELECT 
    	EMPLOYEE_ID
    FROM
    	EMPLOYEE
    WHERE
    	SALARY <![CDATA[<]]> 10000
</select>

<![CDATA[  ]]>의 [] 안에 원하는 연산자를 입력하면 된다.

 

<![CDATA[ "부등호"]]>

<!-- <![CDATA[  ]]> 사용 -->
<select id="getEmployeeSalary">
    SELECT 
    	EMPLOYEE_ID
    FROM
    	EMPLOYEE
    WHERE
    	<![CDATA[ SALARY < 10000 ]]>
</select>

<![CDATA[  ]]>의 [] 안에 또는 쿼리문을 안에 적어도 된다.


해결방법 - 2 : gt, lt

<!-- gt, lt 사용 -->
<select id="getEmployeeSalary">
    SELECT 
    	EMPLOYEE_ID
    FROM
    	EMPLOYEE
    WHERE
    	SALARY &lt; 10000
</select>
기호 대체식 예제
< lt salary &lt; 10000
> gt salary &gt; 10000

when, if 절 test에 부등호 사용 방법

<if test="salary > 10000> 처럼 작성하고 싶을 경우 <if test="salary lt 10000>

<when test="salary > 10000> 처럼 작성하고 싶을 경우 <when test="salary lt 10000>

<!-- gt, lt 사용 -->
<select id="getEmployeeSalary">
    SELECT 
    	EMPLOYEE_ID
    FROM
    	EMPLOYEE
    WHERE
    	1=1
        <if test="salary lt 10000>
    	AND DEPT = '1000'
        </if>
</select>
기호 대체식 예제
< lt <if test="salary lt 10000">
> gt <if test="salary gt 10000">

 

 

도움이 되셨다면 아래 ♡ 눌러주세요 (로그인 필요 없습니당)