본문 바로가기

Develop

비교 표현식 (gt, lt, ge, le, eq, ne / gte, lte)

프로그래밍 언어

구분 문자열  부등호 표현식 비교
크다 greater gt > a gt b a > b
작다 little lt < a lt b a < b
크거나 같다 greater or equal ge >= a ge b a >= b
작거나 같다 little or equal le <= a le b a <= b
같다 equal eq =, == a eq b a == b
같지 않다 not equal ne != a ne b a != b

Mybatis

마이바티스 또는 아이바티스에 부등호가 존재하는 쿼리를 옮겨 사용 시 오류가 발생하는 경우가 있다. 이는 부등호를 mapper에서 인식하는 과정에서 문제가 발생하는 것인데 이를 해결하는 방법을 알아보자.

- 비교 표현식

비교표현식이란, 부등호를 문자열로 표현한 것을 말하는데, 형식은 아래와 같다.

부등호 문자열 예제
> &gt; select * from where age &gt; 25
< &lt; select * from where age &lt; 25
>= &gte; select * from where age &gte; 25
<= &lte; select * from where &lte; age

위와 같은 방법을 사용할 수 있다. 다만 비교 표현식의 경우 가끔 시 tomcat server 빌드 중 오류가 발생하는 경우가 있다.

이럴 경우에는 다른 방법을 사용해야 한다. 아래의 예제를 보자.

- CDATA

CDATA 명시적으로 부등호를 감싸주면서 MAPPER 가 이를 인식하게 끔 해준다. CDATA 안에 부등호 조건 자체를 넣어주어도 되나, 부등호만 써주는 것이 조금 더 가독성이 좋다. 형식은 아래와 같이 사용하면 된다.

SELECT * FROM WHERE AGE <![CDATA[>]]> 25

SELECT * FROM WHERE AGE <![CDATA[<]]> 25

SELECT * FROM WHERE AGE <![CDATA[>=]]> 25

SELECT * FROM WHERE AGE <![CDATA[<=]]> 25

출처