From cb30ae723bd9012e554c0463a552db6ad2a43d07 Mon Sep 17 00:00:00 2001 From: pe9vkn3zc <2336466684@qq.com> Date: Wed, 12 Nov 2025 11:35:54 +0800 Subject: [PATCH] ADD file via upload --- JQPageInfo.java | 163 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 JQPageInfo.java diff --git a/JQPageInfo.java b/JQPageInfo.java new file mode 100644 index 0000000..aa4e0c8 --- /dev/null +++ b/JQPageInfo.java @@ -0,0 +1,163 @@ +package com.utils; + +/** + * 分页信息工具类 + * + * 核心职责:封装前端传递的分页查询参数 + * + * 技术背景: + * 1. 用于接收前端分页组件(如jQuery DataTables、Layui Table等)的查询参数 + * 2. 与MyBatis Plus的Page对象配合使用,实现统一的分页处理 + * 3. 提供标准化的分页参数传递格式 + * + * 使用场景: + * - 控制器层接收前端分页参数 + * - 服务层构建分页查询条件 + * - 统一分页参数格式 + */ +public class JQPageInfo { + + /** + * 当前页码 + * 表示请求的页数,从1开始计数 + */ + private Integer page; + + /** + * 每页记录数 + * 表示每页显示的数据条数 + */ + private Integer limit; + + /** + * 排序字段(Sort Index) + * 用于指定按哪个字段进行排序 + * 示例:"id", "create_time", "username" + */ + private String sidx; + + /** + * 排序方式(Order) + * 用于指定排序方向 + * 取值:"asc"(升序), "desc"(降序) + */ + private String order; + + /** + * 偏移量(Offset) + * 表示从第几条记录开始查询 + * 计算公式:offset = (page - 1) * limit + */ + private Integer offset; + + /** + * 获取当前页码 + * @return 当前页码,从1开始 + */ + public Integer getPage() { + return page; + } + + /** + * 设置当前页码 + * @param page 当前页码,从1开始 + */ + public void setPage(Integer page) { + this.page = page; + } + + /** + * 获取每页记录数 + * @return 每页显示的数据条数 + */ + public Integer getLimit() { + return limit; + } + + /** + * 设置每页记录数 + * @param limit 每页显示的数据条数 + */ + public void setLimit(Integer limit) { + this.limit = limit; + } + + /** + * 获取排序字段 + * @return 排序字段名称 + */ + public String getSidx() { + return sidx; + } + + /** + * 设置排序字段 + * @param sidx 排序字段名称 + */ + public void setSidx(String sidx) { + this.sidx = sidx; + } + + /** + * 获取排序方式 + * @return 排序方向:"asc"或"desc" + */ + public String getOrder() { + return order; + } + + /** + * 设置排序方式 + * @param order 排序方向:"asc"或"desc" + */ + public void setOrder(String order) { + this.order = order; + } + + /** + * 获取偏移量 + * @return 查询起始位置 + */ + public Integer getOffset() { + return offset; + } + + /** + * 设置偏移量 + * @param offset 查询起始位置 + */ + public void setOffset(Integer offset) { + this.offset = offset; + } + + // 可以添加的实用方法: + + /** + * 计算偏移量(如果未设置) + * 根据page和limit自动计算offset + */ + public void calculateOffset() { + if (this.page != null && this.limit != null) { + this.offset = (this.page - 1) * this.limit; + } + } + + /** + * 验证分页参数有效性 + * @return 参数是否有效 + */ + public boolean isValid() { + return page != null && page > 0 && limit != null && limit > 0; + } + + /** + * 获取排序SQL片段 + * @return 排序SQL语句,如:"id ASC" 或 "create_time DESC" + */ + public String getOrderByClause() { + if (sidx != null && !sidx.trim().isEmpty() && order != null && !order.trim().isEmpty()) { + return sidx + " " + order.toUpperCase(); + } + return null; + } +} \ No newline at end of file