[에러] 마이바티스(Mybatis) : 요소 콘텐츠 오류

SHORTCUT

    반응형

    Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 424; columnNumber: 95; 요소 콘텐츠는 올바른 형식의 문자 데이터 또는 마크업으로 구성되어야 합니다.

    원인

    • 위와 같은 오류는 MyBatis에서 <, > 부등호 사용시 발생하는 에러
      <select id="selectGod" resultMap="resultGodDto">
      	select *
      	from GOD
      	where GOD_PRC > 9900
      </select>
      • 마이바티스는 위와 같이 태그<select> 를 통해 쿼리를 감싸고 구성하는 마크업 형태를 취하고 있습니다.
      • 이때, > 중괄호를 사용하게 되면 마이바티스가 이를 닫는 태그로 인식하게 되어 에러를 반환하게 됩니다.

    해결

    • <![CDATA[ ]]> 를 통해 부등호를 감싸서, 괄 호자 수문문자 문자열로 처리해주면 됩니다.
    • 예시
      • <![CDATA[<=]]> : 문제가 되는 부등호만 감싸거나
      • 아래처럼 전체 쿼리를 감사는 경우도 있습니다.
        <select id="selectGod" resultMap="resultGodDto">
        	<![CDATA[
        		select *
        		from GOD
        		where GOD_PRC > 9900
        	]]>
        </select>
        • 단, 전체 쿼리를 감싸는 경우 감싼 부분 안에 <if>문 과 같이 중괄호를 사용하는 녀석이 없는지 확인하셔야 합니다!

    반응형

    댓글

    Designed by JB FACTORY