Mybatis

Mybatis에서 <![CDATA[ ]]> 사용하는 이유

nan2 2022. 2. 21. 11:41
반응형

쿼리문에서 비교연산자나 부등호를 사용할 경우 '>', '=', '<', '&'.. 태그인지 실제 쿼리에 필요한 연산자나 부등호인지 알수없음

<![CDATA[ ]]> 태그안의 쿼리문은 XML Parser에 의한 해석이 아닌 문자열 그대로를 의미한다.

 

[예제]

<select id="getEmployee" resultType="EmployeeVO">
    SELECT *
    FROM EMPLOYEES
    WHERE 1=1 AND
        <![CDATA[
            SALARY > 2000
        ]]>
</select>

위 쿼리문에서 <![CDATA[ ]]> 없이 WHERE절에 '>' 를 사용하는 경우 닫힌 태그로 인식하여 오류가 발생할 것이다.

 

 

※ <![CDATA[ ]]> 사용 시 주의점

<![CDATA[ ]]> 태그를 사용하면 동적쿼리를 사용할 수 없게된다. 동적쿼리와 <![CDATA[ ]]> 태그를 함께 사용하고 싶은 경우 쿼리문 전체를 감싸지 않고, 특수문자가 있는 코드만 감싸주면 된다.

 

반응형