반응형

 

IBatis나 MyBatis에서 xml에 부등호를 사용할 때, 그냥 부등호를 사용하게 되면 에러가 발생한다. 이럴 때 사용하는 방법이 <![CDATA[]]>를 사용하면 부등호를 사용할 때 발생하는 에러를 해결할 수 있다.


xml에서 부등호 사용하는 방법

위에서 말했듯이, xml에서 부등호를 사용할 때 CDATA(Character Data)를 사용한다.

 

아래의 쿼리를 XML에 등록을 하고 실행을 하게 되면 에러가 발생한다.

<SELECT>
SELECT *
  FROM DUAL
 WHERE QTY > 12
</SELECT>

 

WHERE 절에서 사용되는 비교연산자가 SELECT 태그의 닫힘으로 인식이 되어 정상적으로 작동하지 않는다.

 

xml에서는 '>' 또는 '<' 이 기호를 파싱하기 때문에 xml에서 그냥 비교연산자를 사용할 경우에는 에러가 발생한다. 그래서, 특정 범위를 CDATA를 사용하여 이 구문 안에 있는 것은 파싱하지 못하도록 하는게 <![CDATA[]]> 구문이다.

 

<![CDATA[]]> 구문

<![CDATA[]]> 구문을 사용하는 방법은 크게 3가지가 있다.

 

1. 비교연산자에 CDATA 입히는 경우

<SELECT>
SELECT *
  FROM DUAL
 WHERE QTY <![CDATA[>]]> 12
</SELECT>

 

 

2. WHERE과 같은 조건절에 CDATA 입히는 경우

<SELECT>
SELECT *
  FROM DUAL
 WHERE <![CDATA[QTY > 12]]>
</SELECT>

 

 

3. XML 태그 안 쿼리 전체에 CDATA 입히는 경우

<SELECT>
<![CDATA[
SELECT *
  FROM DUAL
 WHERE QTY > 12
 ]]>
</SELECT>

 

 

이 외에도, <![CDATA[]]> 뿐만 아니라 &gt나 &it를 사용해도 된다.

반응형

'IT > MyBatis' 카테고리의 다른 글

IBatis를 MyBatis로 변환하는 방법 정리  (0) 2022.11.17
MyBatis statementType의 CALLABLE이란?  (0) 2022.01.17
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

코집사님의
글이 좋았다면 응원을 보내주세요!

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*