java 페이지 나누기 가짜 페이지 나누기 간단한 페이지 나누기


import java.util.Arrays; 
import java.util.Collections; 
import java.util.List; 
 
/** 
 * @author shuang.gao Date: 2016/1/28 Time: 12:26 
 */ 
public class Pager<T> { 
 
  /** 
   *   
   */ 
  private int pageSize; 
  /** 
   *   
   */ 
  private List<T> data; 
 
  private Pager(List<T> data, int pageSize) { 
    if (data == null || data.isEmpty()) { 
      throw new IllegalArgumentException("data must be not empty!"); 
    } 
 
    this.data = data; 
    this.pageSize = pageSize; 
  } 
 
  /** 
   *   
   * 
   * @param data   
   * @param pageSize   
   * @param <T>   
   * @return   
   */ 
  public static <T> Pager<T> create(List<T> data, int pageSize) { 
    return new Pager<>(data, pageSize); 
  } 
 
  /** 
   *   
   * 
   * @param pageNum   
   * @return   
   */ 
  public List<T> getPagedList(int pageNum) { 
    int fromIndex = (pageNum - 1) * pageSize; 
    if (fromIndex >= data.size()) { 
      return Collections.emptyList(); 
    } 
 
    int toIndex = pageNum * pageSize; 
    if (toIndex >= data.size()) { 
      toIndex = data.size(); 
    } 
    return data.subList(fromIndex, toIndex); 
  } 
 
  public int getPageSize() { 
    return pageSize; 
  } 
 
  public List<T> getData() { 
    return data; 
  } 
 
  public static void main(String[] args) { 
    Integer[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; 
    List<Integer> list = Arrays.asList(array); 
 
    Pager<Integer> pager = Pager.create(list, 10); 
 
    List<Integer> page1 = pager.getPagedList(1); 
    System.out.println(page1); 
 
    List<Integer> page2 = pager.getPagedList(2); 
    System.out.println(page2); 
 
    List<Integer> page3 = pager.getPagedList(3); 
    System.out.println(page3); 
  } 
} 
가짜 페이지는 말 그대로 데이터베이스에서 필터를 하는 것이 아니라 데이터베이스에서 조회한 후에 모든 결과를 얻어 보여줄 때 손발을 움직인다.
import java.util.Arrays; 
import java.util.Collections; 
import java.util.List; 
 
/**
 * @author shuang.gao  Date: 2016/1/28 Time: 12:26
 */ 
public class Pager
 
   /**
* 페이지당 표시줄 수
     */ 
    private int pageSize; 
   /**
* 원래 집합
     */ 
    private List data; 
 
    private Pager(List data, int pageSize) { 
        if (data == null || data.isEmpty()) { 
            throw new IllegalArgumentException("data must be not empty!"); 
        } 
 
        this.data = data; 
        this.pageSize = pageSize; 
    } 
 
   /**
* 페이지 나누기 만들기
     *
* @param 데이터는 페이지별 데이터가 필요합니다.
* @param pageSize 페이지당 표시 줄 수
* @param 비즈니스 객체
* @return 페이지 나누기
     */ 
    public static Pager create(List data, int pageSize) { 
        return new Pager<>(data, pageSize); 
    } 
 
   /**
* 페이지별 데이터 제공
     *
* @param pageNum 페이지 번호
* @return 페이지별 결과
     */ 
    public List getPagedList(int pageNum) { 
        int fromIndex = (pageNum - 1) * pageSize; 
        if (fromIndex >= data.size()) { 
            return Collections.emptyList(); 
        } 
 
        int toIndex = pageNum * pageSize; 
        if (toIndex >= data.size()) { 
            toIndex = data.size(); 
        } 
        return data.subList(fromIndex, toIndex); 
    } 
 
    public int getPageSize() { 
        return pageSize; 
    } 
 
    public List getData() { 
        return data; 
    } 
 
    public static void main(String[] args) { 
        Integer[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; 
        List list = Arrays.asList(array); 
 
        Pager pager = Pager.create(list, 10); 
 
        List page1 = pager.getPagedList(1); 
        System.out.println(page1); 
 
        List page2 = pager.getPagedList(2); 
        System.out.println(page2); 
 
        List page3 = pager.getPagedList(3); 
        System.out.println(page3); 
    } 

이것은 간단한 페이지 나누기로서 원리가 매우 간단하다. 데이터베이스에서 조회한 데이터를 페이지 나누기에 전송하고 되돌아오는 것은 페이지 나누기의 집합이다.
장점은 모든 JDBC 데이터베이스를 호환한다는 것이다. 단점은 이런 방법은 대량의 데이터에 적용되지 않는다는 것이다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기