行业知识
Maven项目中分页工具PageHelper的简单使用
2026-11-06 15:28:52
来源:互联网转载
这���简单记一下分页工具PageHelper的使用,使用可以直接从数据库中获取所有数据,而由其进行自动分页,节省开发时间
()目录
添加依赖
()使用PageHelper
获取数据
添加依赖
首先我们需要在pom中添加咱们要使用的依赖
com.github.pagehelper pagehelper-spring-boot-starter 1.4.6
使用PageHelper
//开启分页查询 PageHelper PageHelper.startPage(pageNum,pageSize);
PageHelper为我们提供了Page类来转换我们直接从数据库获取的信息
这边提供部分源码,感兴趣的可以自己去看
//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package com.github.pagehelper;import com.github.pagehelper.BoundSqlInterceptor.Chain;import com.github.pagehelper.util.SqlSafeUtil;import com.github.pagehelper.util.StackTraceUtil;import java.io.Closeable;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.apache.ibatis.logging.Log;import org.apache.ibatis.logging.LogFactory;public class Page extends ArrayList implements Closeable { private static final long serialVersionUID = 1L; private static final Log log = LogFactory.getLog(Page.class); private final String stackTrace; private int pageNum; private int pageSize; private long startRow; private long endRow; private long total; private int pages; private boolean count; private Boolean reasonable; private Boolean pageSizeZero; private String countColumn; private String orderBy; private boolean orderByOnly; private BoundSqlInterceptor boundSqlInterceptor; private transient Chain chain; private String dialectClass; private Boolean keepOrderBy; private Boolean keepSubSelectOrderBy; 。。。 这里简单看一下它为我们提供的参数变量,最常用的是pageNum(页数),pageSize(页的大小),total(总数量), 以及getResult()获取我们这一页的数据。
通常情况下,我们可以建立一个类(类似PageBean)来保存我们从Page中获取到的信息
package com.yjzx.pojo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.util.List;@Data@NoArgsConstructor@AllArgsConstructorpublic class PageBean { private Long total;//总条数 private List items;//当前页面数据集合} 获取数据
我们需要将数据库数据List强制转换为Page
@Override public PageBean list(Integer pageNum, Integer pageSize, String username, String disabled) { //1.创建PageBean对象 PageBean pb=new PageBean(); //2.开启分页查询 PageHelper PageHelper.startPage(pageNum,pageSize); List as=userMapper.list(username,disabled); //Page中提供了方法,可以获取PageHelper分页查询后,得到的总记录条数和当前页数据 Page p= (Page) as; //把数据填充到PageBean对象中 pb.setTotal(p.getTotal()); pb.setItems(p.getResult());// System.out.println(pb); return pb; } 这时候返回的pb即为分页数据
这边提供前端使用(Vue)
const userList = async () => { let params = { pageNum: pageNum.value, pageSize: pageSize.value, username: text.value ? text.value : null, disabled: disabled.value ? disabled.value : null, }; // console.log(params) let result = await userListService(params); console.log(result.data); //渲染视图 //处理数据,给数据模型扩展一个属性categoryName,分类名称 total.value = result.data.total; users.value = result.data.items; console.log(users.value);}; js:
//用户列表export const userListService = (params) => { console.log(params) return request.get('/user/list', {params:params});} @GetMapping("/list") public Result list( Integer pageNum, Integer pageSize, @RequestParam(required = false)String username, @RequestParam(required = false)String disabled ){ System.out.println(username); PageBean pb=userService.list(pageNum,pageSize,username,disabled);// System.out.println(title); return Result.success(pb); }
上一篇:公司品牌推广网站怎么?
下一篇:育碧服务器模式怎么开启?