1. 게시물 목록 페이징
2. LIMIT[offset, ] row_count
- offset -> 얼마나 떨어져있는가
- row_count -> 읽어올 row의 수
- PageHanlder 클래스
@ToString
public class PageHandler {
int totalCnt; // 총 게시물 갯수
int pageSize; // 한 페이지의 크기
int navSize = 10; // 페이지 내비게이션의 크기
int totalPage; // 전체 페이지의 갯수
int page; // 현재 페이지
int beginPage; // 내비게이션의 첫번째 페이지
int endPage; // 내비게이션의 마지막 페이지
boolean showPrev; // 이전 페이지로 이동하는 링크를 보여줄 것인지의 여부
boolean showNext; // 다음 페이지로 이동하는 링크를 보여줄 것인지의 여부
public PageHandler(int totalCnt, int page){
this(totalCnt, page, 10);
}
public PageHandler(int totalCnt, int page, int pageSize){
this.totalCnt = totalCnt;
this.page = page;
this.pageSize = pageSize;
totalPage = (int)Math.ceil(totalCnt / (double)pageSize);
beginPage = page > navSize ? page/navSize*navSize+1 : 1;
endPage = Math.min(beginPage + navSize-1, totalPage);
showPrev = beginPage != 1;
showNext = endPage != totalPage;
}
void print(){
System.out.print("page = ");
System.out.print(showPrev ? "[PREV] " : "");
for (int i = beginPage; i <= endPage; i++) {
System.out.print(i+" ");
}
System.out.println(showNext ? "[NEXT]" : "");
}
}
- Test
public class PageHandlerTest {
@Test
public void test() {
PageHandler ph = new PageHandler(255, 25);
ph.print();
assertTrue(ph.beginPage==21);
assertTrue(ph.endPage==26);
System.out.println("ph = " + ph);
}
}
- 성공
public class PageHandlerTest {
@Test
public void test() {
PageHandler ph = new PageHandler(250, 1);
ph.print();
assertTrue(ph.beginPage==1);
assertTrue(ph.endPage==10);
System.out.println("ph = " + ph);
}
}
- 성공
'MyBatis' 카테고리의 다른 글
6. 게시판 읽기, 쓰기, 삭제, 수정 기능구현(2) - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2025.03.04 |
---|---|
5. 게시판 읽기, 쓰기, 삭제, 수정 기능구현(1) - 패스트캠퍼스 백엔드 부트캠프 3기 (2) | 2025.03.03 |
4. 게시판 목록 만들기와 페이징/TDD (2) - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2025.02.28 |
2. MyBatis로 DAO작성하기 - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2025.02.27 |
1. MyBatis의 소개와 설정 - 패스트캠퍼스 백엔드 부트캠프 3기 (1) | 2025.02.27 |