Caused by: org.xml.sax.SAXParseException: 요소 콘텐츠는 올바른 형식의 문자 데이터 또는 마크업으로 구성되어야 합니다.

Yeoonnii·2022년 11월 7일
0

MyBatis

목록 보기
3/10

오류

작성한 쿼리문을 mybatis에서 사용할때 오류가 발생했다

해결

쿼리 작성시 결과는 잘나오는데 mybatis에서 왜 오류가 났는지 찾아보니

Mybatis는 XML에 쿼리문을 작성시 부등호를 바로 사용하는 경우,
태그에 존재하는 <tag> 꺽쇠와 동일하게 인식하여 파싱에러가 발생 한다고 한다

위와같이 XML에 부등호를 사용해야 하는 경우
<![CDATA[ ]]>로 감싸서 표기해야 부등호로 인식을 한다

<![CDATA[ ]]> 사용하는 경우

MyBatis에서 쿼리문을 작성할 때 '<', '>', '&' 같은 특수문자를 사용하면 XML은 이를 문자열이 아닌 XML 태그로 인식하여 오류가 발생한다
이때 특수문자를 XML 태그가 아닌 문자열로 인식하게 하기 위해 CDATA<![CDATA[ ]]>를 사용 하거나 HTML 특수문자 코드를 사용한다

CDATA <![CDATA[...]]> 를 사용하는 경우 동적 쿼리문을 사용할 수 없기 때문에 쿼리문 전체가 아닌 특수문자가 포함된 코드에만 <![CDATA[...]]>를 사용해야 한다

HTML 특수문자 코드

< = &lt
> = &gt;
& = &amp;

> = &gt
< = &lt
>= = &gt=
<= = &lt=

0개의 댓글