Spring Mybatis 페이징 처리
마이바티스 환경에서 페이징 처리를 편리하게 하기 위한 방법을 고민하다 Pager 클래스를 활용하여 여러 페이지에서 공통적으로 사용할 수 있는 방법을 생각해보았다.
코드 Pager 클래스 생성 client 요청의 파라미터, db 조회 결과, view에 전달할 정보를 운반할 클래스를 생성한다. 테이블마다 추가로 필요한 속성이 있을 경우 상속을 받아 사용하였다.
import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; /** * 페이징 처리를 위한 Pager 클래스 * * @author taedi */ @Data @Builder @AllArgsConstructor public class Pager { //client 요청 값 private int pageNo; //페이지 번호 private int amount; //한 페이지에 표시할 레코드 수 private String category; //카테고리 private String keyword; //검색 키워드 private String order; //정렬 순서 //server 설정 private int linkCount; //하단 링크에 표시할 페이지 수 //DB 조회 결과 private int startRecord; // 페이지 시작 레코드(인덱스) private int totalRecords; //전체 레코드 수 private int finalPageNo; //끝 페이지 번호 private int startPage; //페이지 링크 시작 번호 private int endPage; //페이지 링크 종료 번호 private int prev; //이전 버튼에 부여할 페이지 번호 private int next; //다음 버튼에 부여할 페이지 번호 private Object records; //게시물을 담을 객체 //별도 지정하지 않았을 경우의 기본 값 public Pager() { this.