小工具知识网

当前位置: 首页 > 行业知识 > Maven项目中分页工具PageHelper的简单使用

行业知识

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);    }

 

上一篇:公司品牌推广网站怎么?

下一篇:育碧服务器模式怎么开启?