Board Paging 함수정리

김명래·2022년 9월 5일
0

servlet

목록 보기
2/4

Board 정리

게시판을 생성할시에 고려할 사항은 다음과 같다

한번에 몇 개의 데이터를 출력해 줄 것인가 ? -> boardLimit
한번에 몇 개의 버튼을 줄 것인가 ? -> pageLimit
버튼의 시작 숫자는 몇 인가 ? -> startPage
버튼의 끝은 몇 인가 ? -> endPage
마지막 page는 몇번째 인가 ? -> maxPage

먼저 boardLimit 과 pageLimit은 10으로 고정한다고 했을 때

startPage 를 구하려면 어떻게 해야하는가 ? 그는 다음과 같다.

현재 들어간 Page(currentPage)의 값에서 1을 빼준뒤
 1을 빼주는 이유는 페이징바의 첫번째 버튼을 클릭했을 경우를 대비하여 1을 빼주어야한다

그 값을 PageLimit 으로 나눈 뒤
 PageLimit 으로 나누어 현재값이 1 ~ 10 일때 0으로 만들어준뒤
그 값에 PageLimit을 곱한다. 앞자리만 남겨두고 뒤에자리를 제거하는 과정
1을 더하면 StartPage가 되는 것.

endPage는 startPage에 (pageLimit-1)을 더한값이 된다.
그러나 여기서 endPage가 maxPage를 넘어갔다면 endPage를 maxPage로 설정한다.

maxPage를 구하기 위해서는 먼저 전체 몇 개의 데이터가 있는지를 알아야한다.
전체 몇 개의 데이터가 있는지 확인한 값을 listCount라고 할시
listCount를 pageLimit으로 나눈뒤 반올림을 한다면 maxPage가 된다..

SQL 문

Rownum 을 지정하여 현재 current 값에 맞춰 데이터를 boardLimit 만큼 불러와야 한다.
따라서
startRow = (Currentpage-1) * 10 + 1 한것이 n1 < x < n2 중 n1 의 값이 될 것이며
N2는 startRow + boardLimit -1 이 되고 그것을 endRow라고 칭한다.

이것으로 현재 page의 값에따라 boardLimit 값만큼 불러온다

profile
독자보다 필자를 위해 포스팅합니다

0개의 댓글