1、自定义假分页-工具类

  1. @Slf4j
  2. public class PageInfoUtil<T> {
  3. /** 总记录数 */
  4. private Long total = 0L;
  5. /** 结果集 */
  6. private List<T> list;
  7. /** 当前页的页码 */
  8. private int pageNum;
  9. /** 每页的数量 */
  10. private int pageSize;
  11. /** 当前页面第一个元素在数据库中的行号 */
  12. private int startRow;
  13. /** 当前页面最后一个元素在数据库中的行号 */
  14. private int endRow;
  15. /** 当前页的数量 */
  16. private int size;
  17. /** 总页数 */
  18. private int pages;
  19. /** 是否为第一页 */
  20. private boolean isFirstPage;
  21. /** 是否为最后一页 */
  22. private boolean isLastPage;
  23. /** 是否有前一页 */
  24. private boolean hasPreviousPage;
  25. /** 是否有后一页 */
  26. private boolean hasNextPage;
  27. public PageInfoUtil() {
  28. this.isFirstPage = false;
  29. this.isLastPage = false;
  30. this.hasPreviousPage = false;
  31. this.hasNextPage = false;
  32. }
  33. public PageInfoUtil(List<T> list) {
  34. if (list instanceof Page) {
  35. Page<T> page = (Page<T>)list;
  36. this.pageNum = page.getPageNum();
  37. this.pageSize = page.getPageSize();
  38. this.pages = page.getPages();
  39. this.list = page;
  40. this.size = page.size();
  41. this.total = page.getTotal();
  42. if (this.size == 0) {
  43. this.startRow = 0;
  44. this.endRow = 0;
  45. } else {
  46. this.startRow = page.getStartRow() + 1;
  47. this.endRow = this.startRow - 1 + this.size;
  48. }
  49. }else if (list instanceof Collection) {
  50. this.pageNum = 1;
  51. this.pageSize = list.size();
  52. this.pages = 1;
  53. this.list = list;
  54. this.size = list.size();
  55. this.total = (long)list.size();
  56. this.startRow = 0;
  57. this.endRow = list.size() > 0 ? list.size() - 1 : 0;
  58. }
  59. }
  60. public Long getTotal() {
  61. return total;
  62. }
  63. public void setTotal(Long total) {
  64. this.total = total;
  65. }
  66. public List<T> getList() {
  67. return list;
  68. }
  69. public void setList(List<T> list) {
  70. this.list = list;
  71. }
  72. }