CDATA ( <![CDATA[..]]> )

Ruinak·2021년 12월 27일
0

Glossary

목록 보기
26/26

개념

  • 쿼리를 작성할 때, '<', '>', '&'를 사용해야하는 경우가 생기는데 xml에서 그냥 사용할 경우 태그로 인식하는 경우가 종종 있습니다.
  • 이럴 경우 에러를 뱉어내기 때문에 '태그가 아니라 실제 쿼리에 필요한 코드'라고 알려줘야 한다.
  • 그때 사용하는 것이 <![CDATA[...]]> 이다.
  • 한 마디로 <>(부등호),&(앤드),||(오아) 등을 닫는 부등호가 아니라 문자열로 처리하라는 뜻입니다.
  • 어렵게 말하자면 "XML parser"를 하지 말아라 이겁니다.

문법

<![CDATA[
  쿼리 내용
]]>
  • CDATA 안에 쿼리를 사용하면 쿼리 내용의 괄호나 특수문자를 XML parser로 인식하지 않고 "문자열"로 인식합니다.

예시

전체 쿼리 CDATA 사용

<select id="getUserList" resultMap="UserVO">
  <![CDATA[
  SELECT *
  FROM user
  WHERE id > 3
  ]]>
</select>

조건문 중간에 CDATA 사용

  • if 문
<select id="getUser" resultType="UserVO">
  SELECT * FROM user
  <if test="id != null">
    where id  <![CDATA[<]]> 3;
  </if>
</select>
  • choose 문
<select id="getUser" resultMap="UserVO">
  <![CDATA[
    SELECT *
    FROM user
    WHERE  1=1
  ]]>
  <choose>
    <when test='id != null and user_type =="1"'>
      <![CDATA[
        salary > 100
      ]]>
    </when>
    <otherwise>
      <![CDATA[
        salary < 100
      ]]>
    </otherwise>
  </choose>
</select>

출처 : https://java119.tistory.com/70

profile
Nil Desperandum <절대 절망하지 마라>

0개의 댓글