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 < 10000
</select>
기호 | 대체식 | 예제 |
< | lt | salary < 10000 |
> | gt | salary > 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"> |
도움이 되셨다면 아래 ♡ 눌러주세요 (로그인 필요 없습니당)