-
[MyBatis] 쿼리문에서 >, < 등 부등호 사용하기개발기록 2023. 3. 6. 21:32반응형728x90
MyBatis에서 부등호 사용하는 법
MyBatis에서 날짜 조건을 사용해서 조회할 경우,
- WHERE test_date BETWEEN 'yyyy-MM-dd' AND 'yyyy-MM-dd'
- WHERE test_date >= 'yyyy-MM-dd' AND test_date <= 'yyyy-MM-dd'
위처럼 두가지 방식을 사용할 수 있다.
두 방식은 성능에서 꽤 차이가 난다고 한다.
(cf. HediSQL에서 1번 형식으로 조회했을 때 0.109초, 2번 형식으로 조회했을 때 0.109초로 동일하게 나왔다,,
뒤에 단위에서 차이가 날 지는 몰라도 현재 프로젝트에서 사용하고 있는 쿼리에서는 큰 차이는 안 보였다.
정확한 이유와 성능테스트는 차후에 더 공부하고 시간적 여유가 생기면 해보기로 한다.)
따라서 구글링하면 추천하는 방법이 2번 형태이다.
2번 형태로 HediSQL과 같은 tool에서 실행하면 결과를 잘 가져온다.
하지만 프로젝트 내 .xml에서 사용하면 에러를 일으킨다.
그 이유는 부등호가 특수부호로 인식되기때문이다.
이를 해결하기 위해서 <![CDATA[ ]]> 또는 치환을 통해 부등호임을 알려줘야한다.
- WHERE test_date <![CDATA[ >= ]]> 'yyyy-MM-dd' AND test_date <![CDATA[ <= ]]> 'yyyy-MM-dd'
- <![CDATA[ WHERE test_date >= 'yyyy-MM-dd' AND test_date <= 'yyyy-MM-dd' ]]>
- WHERE test_date >= 'yyyy-MM-dd' AND test_date <= 'yyyy-MM-dd'
위와 같은 방식으로 문제를 해결할 수 있다.
개인적으로 가독성을 생각하면 2번이 가장 좋은 방법인 것 같다.
※ cf) 부등호 치환표
기호 치환 > > >= >= < < <= <= 728x90'개발기록' 카테고리의 다른 글
[에러] gradle 프로젝트에서 모듈 추가 후 삭제 시 마주친 에러 (0) 2023.04.06 [RSA] Java와 C# 간 RSA 공개키 호환 코드 (0) 2023.03.07 [웹개발] 이미지 업로드 후 새로고침해야만 적용되는 현상 해결하기 (2) 2023.01.13 [웹개발] Client - Server 간 pw 구간 암호화하기(SHA-256 + SALT) (0) 2023.01.02 [Regex] 정규식 / 정규표현식 (Regular Expression, Regex) (0) 2022.12.23