Spring(스프링), Spring Boot(스프링부트), JSP

마이바티스(mybatis) 사용 시 sql문 작성할 때 <![CDATA[...]]> 태그 사용하는 이유

알통몬_ 2019. 8. 26. 15:07
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


mybatis를 사용하다보면 <![CDATA[...]]> 태그를 사용하는게 되는 경우가

있는데요. <![CDATA[...]]> 태그를 사용하는 것과 안하는 것의 차이가 뭔지????

궁금하신 적이 있으신가요?


저는 궁금해서 여기저기 찾아봤는데요.

<![CDATA[...]]> 태그는 xml에서 sql을 작성할 때 xml parser에 의해

<, > 같은 부등호가 xml 태그로써 해석되는 것을 막고 문자 그대로 출력하도록

해준다고 합니다.

예를 들어

select * from xxx where age > 100;

이런 sql 문이 있을 때

<![CDATA[...]]> 태그 안에 작성하면 그대로 출력되지만

select * from xxx where age > 100;

사용하지 않으면

select * from xxx where age &gt 100;

'>' 가 태그로 인식되어서 '&gt' 로 변환되어 sql 문이 정상적으로 동작하지

못하게 됩니다.

sql 문에 <, > 를 사용하시는 경우에 유용하겠네요.

* sqlMap, sqlMapper 사용 시 동적쿼리를 사용하는 경우도 있기 때문에

<, > 같은 태그에만 적용하는 것이 좋습니다.

ex)
<![CDATA[select * from xxx where age > 100]]>

이 아닌

select * from xxx where age <![CDATA[>]]> 100;

이상입니다.  

반응형