
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[]]> 뿐만 아니라 >나 &it를 사용해도 된다.
'IT > MyBatis' 카테고리의 다른 글
IBatis를 MyBatis로 변환하는 방법 정리 (0) | 2022.11.17 |
---|---|
MyBatis statementType의 CALLABLE이란? (0) | 2022.01.17 |
최근댓글