본문 바로가기
IT/Java

mybatis에서 <![CDATA[ ]]> 사용 이유

by 성준하이 2022. 8. 2.
반응형

CDATA 란

CDATA = Character DATA, 즉 문자형 데이터를 말한다.

 

<![CDATA[  ]]> 이렇게 선언하고 안에 문자열을 채워 넣으면 , [ ] 안에 있는 문장은 파싱되지 않고 그대로 문자열로 출력된다.

그래서 아래 참고 포스팅의 spring 예제에서 mapper 파일을 보면 이 문구 안에 쿼리가 들어가있다.

 

마이바티스에서 매퍼 파일은 XML으로 작성되어 있고, 파싱될 때 XML 표준으로 파싱된다.

 

SELECT문에는 조건을 걸어 쿼리하기 위해 <, >, = 등의 기호를 많이 사용하는데, 이것이 파싱 중에 태그로 인식되거나 하는 등의 문제가 생길 수 있다. 

 

 <![CDATA[  ]]> 안에 원하는 쿼리문을 선언 한다면, 파싱하지 않고 그대로 문자열로 인식 시킬 수 있어 이런 문제를 예방할 수 있다.

 

동적 SQL에서는 사용하지 못하는데, 필요한 특수문자에 한해서만 적용시키면 동적 SQL에서도 사용 가능하다.


참고 포스팅

https://thenicesj.tistory.com/56

 

spring 예제 part.7

이번 시간엔 저번 포스팅에서 설정한 데이터베이스로 쿼리를 날려볼것이다. 그러기 위해서는 mybatis를 사용하고 xml파일을 통해서 쿼리를 저장해야한다. sql 을 적을 xml파일생성 > book.xml (그 안에

thenicesj.tistory.com

 

반응형

댓글