Spring
스프링 - Mybatis Mapper 작성 시 !CDATA에 대한 정보
마루설아
2025. 5. 25. 18:52
아래 예시 mapper.xml을 보자.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.zerock.mapper.BoardMapper">
<select id="getList" resultType="org.zerock.domain.BoardVO">
<![CDATA[
SELECT * FROM TBL_BOARD WHERE BNO > 0
]]>
</select>
</mapper>
CDATA를 쓰는 이유는 아래와 같다.
xml에서 사용하는 <. >과 SQL에서 사용하는 <. >의 역할이 서로 다르지만
하나의 xml 파일에서 관리되기 때문에 파싱 오류가 발생할 수 있다.
(xml의 태그와 SQL의 부등호)
즉, mapper.xml에서 CDATA[ ] 안에 있는 내용을
문자 내용 그대로 실행되도록 스프링에 알려주는 역할을 맡고 있는 것이다.