[Mybaits] 비교연산자, 특수기호 부등호 처리 <=, <, >=, >

728x90
반응형

 

Mybatis에선 < 기호가 태그의 시작이기 때문에 parse오류가 납니다. 때문에 비교연산자를 사용해야 할때는 다른 방법으로 사용해야합니다.

 

 

1. 특수문자 코드로 변경

SELECT
	USER
FROM USERTABLE
WHERE NUM &lt; 5
< &lt;
<= &lt;=
> &gt;
>= &gt;=
& &amp; 
" &quot;

 

2. <![CDATA[  ]]> 사용

SELECT
	USER
FROM USERTABLE
WHERE NUM <![CDATA[ < ]]> 5

이렇게 특수문자 쪽에만 감싸줄 수가 있고

<![CDATA[
SELECT
	USER
FROM USERTABLE
WHERE NUM  <  5 AND NUM > 10
]]>

이렇게 쿼리 전체에 감싸는 방법도 있습니다. 그러나 이 방법은 정적 쿼리에만 사용해야합니다. 

 

*주의할 점: CDATA안에서는 동적 SQL 사용 불가

728x90
반응형