[ibatis/mybatis] 부등호 사용하기 (CDATA)

 

아이바티스 또는 마이바이스에서 부등호를 사용할 경우 오류가 발생할 수 있다.

 

이는 xml을 파싱할 때 부등호를 인식하는 과정에서 문제가 발생한 것인데,

 

'<', '>' 이 부등호들은 xml 문서의 태그 시작과 끝을 알리는 괄호로 인식하기 때문이다.


* 부등호를 문자열로 표현하는 방법

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

위와 같은 방법으로 부등호 대신 직접 문자열을 이용하여 작성하는 방법이 있다.

 

* CDATA

 

일반적으로는 CDATA를 많이 사용한다.

 

Character DATA 의 줄임말로서, 말 그대로 파싱 하면서 문자열로 인식 시키라고 선언한다 생각하면 된다.

 

SELECT * FROM USER
WHERE AGE <![CDATA[<]]> 20

SELECT * FROM USER
WHERE AGE <![CDATA[>]]> 20

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

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

 

쿼리 전체를 CDATA로 감싸서 사용하는 경우도 있고, 부등호를 사용하는 경우에만 CDATA를 사용하는 경우도 있다.

 

특히나 나는 부등호 중에서도 태그를 여는 '<' 의 경우에만 <![CDATA[ < ]]> 과 같이 사용하는 편이다.

 

등호나 태그를 닫는 '>' 의 경우는 굳이 문자열 데이터라고 인식시켜주지 않아도 된다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기