Spring MyBatis 사용하는 법, DQM DEM.xml 주석 작성법
Spring에서 MyBatis를 사용하는 경우
<![CDATA[]]>
이 태그를 본 사람들이 있을 것이다 .
간단히 말해서 CDATA란 character data, 한 마디로 문자열을 뜻한다.
즉 , <![CDATA[]]>
이라고 쓰고 해당 태그 안에 코드를 쓰면 [ ] 안에 있는 문자는 파싱되지 않고 그대로 문자열로 출력된다는 의미이다.
DQM 이나 DEM에서 select 쿼리를 쓸 때 <, >, = 등의 기호를 쓸 때가 많은데 파싱 중에 태그로 인식될 확률이 있어 CDATA안에 넣어서 사용하는 것이다.
특히 xml 안에서 주석을 사용하고 싶을 때 사용하는
<!-- --> 의 경우에도
CDATA 안에서 사용하면 xml의 주석이 아닌, literally string으로 인식하기 때문에 CDATA 태그 안에 사용하면 무조건 에러가 난다.
CDATA 안 쿼리에 직접 주석을 작성하고 싶다면 /* */ 주석을 사용해야 한다.
예시로
<resultMap>
<result property="" column=""/>
</resultMap>
<select id = "" parameterType="" resultMap="" >
<![CDATA[
쿼리
]]>
</select>
이런식의 구조로 DEM과 DQM을 작성하면 된다. 그리고 주석을 사용하고 싶다면 반드시 CDATA 밖에
<resultMap>
<result property="" column=""/>
</resultMap>
<!-- 주석 -->
<select id = "" parameterType="" resultMap="" >
<![CDATA[
쿼리
]]>
</select>
이런식으로 작성하거나,
CDATA 태그 안에 작성하려면
<resultMap>
<result property="" column=""/>
</resultMap>
<select id = "" parameterType="" resultMap="" >
<![CDATA[
쿼리 /* 주석입니다 */
]]>
</select>
이런식으로 실제 쿼리에서 인식할 수 있도록 작성해주어야 한다.