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[ ] 안에 있는 내용을

문자 내용 그대로 실행되도록 스프링에 알려주는 역할을 맡고 있는 것이다.