반응형
위 예제를 보면
Mybatis에서 TB1 테이블에서 AGE가 15 이상인 값을 가져오는 쿼리인데
쿼리를 돌려보면 자연스럽게 에러가 난다
Mybatis에서 <, >, ||, &&같은
특수문자를 사용할 경우에
위에 쓴 내용을 문자열이 아닌
XML 태그로 인식하기 때문에 에러가 나는 것이다
따라서 문자열로 바꿔준 후 사용해야 하는데
그때는 CDATA를 사용해주면 된다
<![CDATA[ 쿼리 ]]>
이런 식으로 쿼리를 감싸면
<, >, ||, &&이 문자로 인식되어 사용 가능해진다
다음으로 IF와 CHOOSE같은 조건문 사용시에는
SQL 전체를 감싸는 것이 아니라
위와 같이 부분적으로 감싸주면 된다
예제에 사용한 코드는 아래와 같다
<select id="test" resultMap="TestVO">
<![CDATA[
SELECT NAME, AGE
FROM TB1
WHERE AGE > 15
]]>
</select>
<select id="test" resultMap="TestVO">
<![CDATA[
SELECT NAME, AGE, ADR
FROM TB1
WHERE AGE > 15
]]>
<if test="ADR != null ">
AND ADR <![CDATA[ > ]]> 30
</if>
</select>
반응형
'Error & Fix' 카테고리의 다른 글
mssql 스칼라 변수 ~을(를) 선언해야 합니다 해결방법 (0) | 2020.03.23 |
---|---|
MSSQL LOCK 확인 및 제거방법 (0) | 2020.03.19 |
자바 소수 오차 없이 계산 및 사칙연산 방법 (0) | 2020.02.27 |
스택 오버플로우 로그아웃 방법 (0) | 2020.02.05 |
내 컴퓨터 IP 바로 확인하는 방법 (0) | 2020.02.02 |
댓글