째의 개발 기록방

[MyBatis/MariaDB] 페이징 구현하기 2 본문

Back End/SQL

[MyBatis/MariaDB] 페이징 구현하기 2

째린이 2021. 10. 28. 19:50

아래 글과 이어지는 부분입니다~~~

앞단과 서버단은 아래링크에..!!

2021.10.28 - [Back End/Java, Spring] - [Java/Spring] 페이징 구현하기

 

[Java/Spring] 페이징 구현하기

일일업무보고 게시판(crud) 에 페이징을 한번 구현해보았습니다. 원래 그리드에 있는것만 써왔었는데 이번 기회에 직접 처음부터 구현해보게 되었습니다. jsp 처음 이전 ${i} ${i} 다음 마지막 페이

zzecoding.tistory.com

  • mapper.xml
    /*******전체 글 갯수 조회*******/
    <select id="selectCntReportList" parameterType="vo.ReportVO" resultType="int">
    	SELECT COUNT(REPORT_ID) AS CNT
    	FROM DAILY_REPORT
    	WHERE 1=1
    </select>
        
        
        
    /**********페이징 조회***********/	
     <select id="selectPageReportList" parameterType="vo.ReportVO" resultMap="report">
       	<include refid="reportSqlId"></include>
    	AND A.REPORT_ID > 0  
    	ORDER BY A.REPORT_ID DESC 
    	LIMIT #{startRow}, #{pageSize}
     </select>

LIMIT #{startRow}, #{pageSize} <---요 부분이 핵심!

 

 

전체 글 갯수 조회 쿼리 select

위의 쿼리는 전체 글의 갯수를 조회한 select문입니다.

결과를 보면 총 82개의 결과가 나온것을 볼 수 있습니다.

 

그리고 가장중요한 페이징 조회 쿼리를 날려보면~~~~!

컨트롤러에서 가공된 reportVO.setStartRow((reportVO.getCurrPage() - 1) *  reportVO.getPageSize());    <--- 이 부분에 의하여 페이징번호 2를 클릭하였을때 #{startRow} = 10이 되고 #{pageSize}는 10!

 

그렇게해서 10개가 나오는것을 확인할 수 있습니다.
(데이터는 제가 임의로 행복제해서 마구 넣은거라 무시해주세요 ^^;;)

 

페이징까지 완료 된 뷰 화면

이렇게 페이징을 구현해보았습니다.