안녕하세요 오늘은 Datepicker 사용 시 Mybatis에서 기간을 조회하는 방법에 대해 다뤄 보겠습니다.
사용한 DB는 Mysql입니다.
우선 datepicker의 스크립트 부분입니다.
$(function(){
$('.datepicker').datepicker({
startDt: new Date('2022'),
calendarWeeks: false,
todayHighlight: true,
autoclose: true,
format: "yyyy-mm-dd",
language: "ko"
});
});
구현한 부분은 다음과 같습니다.
<div class="row">
<div class="input-group">
<input type="text" id="startDt" class="form-control datepicker startDt" placeholder="시작날짜" name="startDt">
<label class="input-group-text" for="startDt" ><i class="fa-solid fa-calendar" ></i></label>
</div>
<div class="text-center" style="font-size: x-large;">~ </div>
<div class="input-group">
<input type="text" id="endDt" class="form-control datepicker endDt" placeholder="종료날짜" name="endDt">
<label class="input-group-text" for="endDt" ><i class="fa-solid fa-calendar" ></i></label>
</div>
</div>
VO는 다음과 같이 String으로 선언합니다.
VO를 String으로 하면 Mybatis에서 Date로 변환하여 날짜 검색이 가능합니다.
//검색 시작 날짜
private String startDt;
//검색 종료 날짜
private String endDt;
Mybatis는 다음과 같이 사용합니다
+1을 한 이유는 예를 들어
22.12.14~ 22.12.14 인경우 14일에 등록된 날짜를 포함하기 위해 +1을 하였습니다. String에서 본인이 선언한 Format에 맞게 입력합니다.
<if test='startDt !=null and startDt !=""'>
<![CDATA[
AND REG_DT >= STR_TO_DATE(#{startDt},'%Y-%m-%d')
]]>
</if>
<if test='endDt !=null and endDt !=""'>
<![CDATA[
AND REG_DT < STR_TO_DATE(#{endDt},'%Y-%m-%d')+1
]]>
</if>
Mysql에서 Beetween을 이용하여 검색하는 방법도 있지만
위와 같이 작성하는 게 사용하기도 편하고 성능에서도 좋은 부분이 있다고 합니다.
감사합니다.
'프로그래밍 > 스프링[Spring]' 카테고리의 다른 글
[JQuery] closest, parent, children, find 차이 (0) | 2022.12.15 |
---|---|
[JQuery] 태그 속성 값 가져오기 (0) | 2022.12.15 |
[Bootstrap] datepicker 처음 사용과 사용 방법 정리 (0) | 2022.12.14 |
[Bootstrap] 모달창 영역 밖 선택시 닫힘 방지 (0) | 2022.12.09 |
[Eclipse] FileNotFoundException 에러 (액세스 거부) (0) | 2022.02.24 |