diff --git a/PageUtils.java b/PageUtils.java new file mode 100644 index 0000000..4a2ea63 --- /dev/null +++ b/PageUtils.java @@ -0,0 +1,114 @@ +// 声明该类所在的包为 com.utils +package com.utils; + +// 导入 Serializable 接口,用于实现对象的序列化 +import java.io.Serializable; +// 导入 List 接口,用于存储列表数据 +import java.util.List; +// 导入 Map 接口,用于存储键值对数据 +import java.util.Map; + +// 导入 MyBatis-Plus 框架的 Page 类,用于分页操作 +import com.baomidou.mybatisplus.plugins.Page; + +// 定义一个公共类 PageUtils,用于处理分页相关的操作,实现 Serializable 接口以便对象可以序列化 +public class PageUtils implements Serializable { + // 定义序列化版本号,用于在反序列化时验证版本一致性 + private static final long serialVersionUID = 1L; + // 定义一个长整型变量,用于存储总记录数 + private long total; + // 定义一个整型变量,用于存储每页显示的记录数 + private int pageSize; + // 定义一个长整型变量,用于存储总页数 + private long totalPage; + // 定义一个整型变量,用于存储当前页码 + private int currPage; + // 定义一个泛型列表,用于存储分页显示的数据 + private List list; + + // 定义一个构造函数,根据传入的列表数据、总记录数、每页记录数和当前页数进行分页信息初始化 + public PageUtils(List list, int totalCount, int pageSize, int currPage) { + // 将传入的列表数据赋值给类的成员变量 + this.list = list; + // 将传入的总记录数赋值给类的成员变量 + this.total = totalCount; + // 将传入的每页记录数赋值给类的成员变量 + this.pageSize = pageSize; + // 将传入的当前页数赋值给类的成员变量 + this.currPage = currPage; + // 计算总页数,使用 Math.ceil 方法确保结果向上取整 + this.totalPage = (int) Math.ceil((double) totalCount / pageSize); + } + + // 定义一个构造函数,根据 MyBatis-Plus 的 Page 对象进行分页信息初始化 + public PageUtils(Page page) { + // 获取 Page 对象中的记录列表并赋值给类的成员变量 + this.list = page.getRecords(); + // 获取 Page 对象中的总记录数并赋值给类的成员变量 + this.total = page.getTotal(); + // 获取 Page 对象中的每页记录数并赋值给类的成员变量 + this.pageSize = page.getSize(); + // 获取 Page 对象中的当前页码并赋值给类的成员变量 + this.currPage = page.getCurrent(); + // 获取 Page 对象中的总页数并赋值给类的成员变量 + this.totalPage = page.getPages(); + } + + // 定义一个构造函数,根据参数 Map 生成 Page 对象并进行分页信息初始化 + public PageUtils(Map params) { + // 根据参数 Map 创建一个 Query 对象,并获取其对应的 Page 对象 + Page page = new Query(params).getPage(); + // 调用另一个构造函数,使用生成的 Page 对象进行初始化 + new PageUtils(page); + } + + // 定义一个公共方法,用于获取每页记录数 + public int getPageSize() { + return pageSize; + } + + // 定义一个公共方法,用于设置每页记录数 + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + // 定义一个公共方法,用于获取当前页码 + public int getCurrPage() { + return currPage; + } + + // 定义一个公共方法,用于设置当前页码 + public void setCurrPage(int currPage) { + this.currPage = currPage; + } + + // 定义一个公共方法,用于获取列表数据 + public List getList() { + return list; + } + + // 定义一个公共方法,用于设置列表数据 + public void setList(List list) { + this.list = list; + } + + // 定义一个公共方法,用于获取总页数 + public long getTotalPage() { + return totalPage; + } + + // 定义一个公共方法,用于设置总页数 + public void setTotalPage(long totalPage) { + this.totalPage = totalPage; + } + + // 定义一个公共方法,用于获取总记录数 + public long getTotal() { + return total; + } + + // 定义一个公共方法,用于设置总记录数 + public void setTotal(long total) { + this.total = total; + } +} \ No newline at end of file