import java.util.Arrays; import java.util.Collections; import java.util.List; 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; } public static Pager create(List data, int pageSize) { return new Pager<>(data, pageSize); } 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); } }
假分页,顾名思义,不是真正的在数据库里进行过滤,而是从数据库查询之后,取得全部结果,在展现的时候做些手脚。
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Pager
private int pageSize;
private List
private Pager(List
if (data == null || data.isEmpty()) {
throw new IllegalArgumentException("data must be not empty!");
}
this.data = data;
this.pageSize = pageSize;
}
public static
return new Pager<>(data, pageSize);
}
public List
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
return data;
}
public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
List
Pager
List
System.out.println(page1);
List
System.out.println(page2);
List
System.out.println(page3);
}
}
这是一个简单的分页器,原理很简单,将从数据库查询的数据,传入到分页器里,返回的是分好页的集合。
优点是兼容所有JDBC数据库,缺点是这种方法不适用于大批量数据。
以上就是本文的全部内容,希望对大家的学习有所帮助。



