현재 직장에서 쿼리를 다룰 일이 많습니다. 한국에서 일하다 보니 백엔드로 전자정부 프레임워크를 이용하고 있으며 이는 MyBatis를 통해 쿼리문을 만드는 방식을 사용하고 있습니다. MyBatis는 XML을 이용하기 때문에 부등호 입력 시 문법상의 오류가 날 수 있습니다. 간단하게 정리를 해보려고 합니다.
오류코드 (예시 코드)
<select id="newMember">
SELECT EMP_NO
FROM REGISTER
WHERE JOIN_SEQ > 1000
</select>
위에서 말한 것과 같이 XML을 사용하는 방식입니다. 그렇기 때문에 부등호로 사용하는 <>연산자 기호는 MyBatis에서 태그로 사용됩니다. 그렇기 때문에 다음과 같은 방법을 이용합니다.
1. CDATA를 이용하기
<select id="newMember">
SELECT EMP_NO
FROM REGISTER
WHERE JOIN_SEQ <![CDATA[>]]> 1000
</select>
<![CDATA[ "부등호"]]>
먼저 CDATA를 이용하는 방법입니다. 해당 태그 안에 부등호를 입력하면 정상적으로 작동됩니다.
2. 비교 표현식을 이용하기
<select id="newMember">
SELECT EMP_NO
FROM REGISTER
WHERE JOIN_SEQ > 1000
</select>
> <
두 번째로는 비교 표현식을 이용하는 방법입니다. 형식은 &비교 표현식; 입니다. 비교 표현식은 다음과 같습니다.
비교 표현식 | 부등호 | 본딧말 |
eq | = | equal |
ne | <> | not equal |
lt | < | little |
le | <= | little or equal |
gt | > | greater |
ge | >= | greater or equal |
추가) when, if 절을 이용할 때
<select id="newMember">
SELECT EMP_NO
FROM REGISTER
<if test='flag lt 10000'>
WHERE JOIN_SEQ > #{SEQ}
</if>
</select>
마지막으로 mybatis를 사용할 때 when, if 구문을 사용할 때도 있습니다. 그럴 때는 두 번째 비교 표현식을 이용하면 됩니다.
'컴퓨터 > 기타' 카테고리의 다른 글
Mybatis - INSERT SELECT에서 ORA-00933 에러 (0) | 2024.05.29 |
---|---|
WAS - 아파치(Apache)와 톰캣(Apache Tomcat) (2) | 2024.04.20 |
WOL - 집에서 원격 부팅을 하자 (Wake On Lan) (0) | 2023.08.12 |
Excel - 전역일 계산기를 만들어보자 (5) | 2022.08.08 |
웹 브라우저 - 인터넷 익스플로러(IE)는 왜 망하였는가? (0) | 2022.06.24 |