MyBatis CDATA
1. CDATA 란
Character DATA, 즉 문자열 데이터를 말한다.
쿼리를 작성할 때, <
, >
, &
를 사용해야하는 경우 xml에서 태그로 인식한다. 에러가 나기 때문에 ‘태그가 아니라 실제 쿼리에 필요한 코드’라고 알려줘야 한다.
죽, XML parser에 의해 해석하지말고 그대로 브라우저에 출력하라는 뜻이다.
2. 예시
1) <![CDATA[ ]]>
태그를 사용
1
SELECT * FROM DUAL WHERE A <!CDATA[ > ]]> B;
2) <![CDATA[ ]]>
태그를 사용하지 않음
1
SELECT * FROM DUAL WHERE A > B;
위의 코드처럼 <!CDATA[ ]]>
를 사용하지 않고 표현하는 방법이 있지만 HTML 특수문자 코드를 알아야 한다는 번거로움이 있다.
3. 주의점
xml에서 sqlMap이나 Mapper를 사용할 경우 동적(다이나믹) 쿼리에서 <!CDATA[ ]]>
를 사용하게 되면 해당 코드에는 동적 쿼리를 사용할 수 없다.
동적 쿼리를 사용해야 하는 경우, 쿼리문 전체가 아닌 특수문자가 있는 코드에만 <!CDATA[ ]]>
를 사용하면 동적 쿼리도 문제없이 사용할 수 있다.
[출처 및 참고]
This post is licensed under CC BY 4.0 by the author.