springboot集成pagehelper

2023-11-18

1、导入pom.xml

<!--pagehelper分页插件-->
<dependency>
     <groupId>com.github.pagehelper</groupId>
     <artifactId>pagehelper-spring-boot-starter</artifactId>
     <version>1.2.12</version>
</dependency>

2、application.yml配置文件

#分页插件pagehelper配置
pagehelper:
  helperDialect: mysql           #数据库方言
  supportMethodsArguments: true  #是否支持传参

3、使用分页插件,在查询前使用分页插件,原理:统一拦截sql,为其提供分页功能

/**
     * page: 第几页
     * pageSize: 每页显示条数
 */
PageHelper.startPage(page, pageSize);

//自己的mapper查询
List<?> list = xxxMapper.query(xxx);

PageInfo<?> pageInfo = new PageInfo<>(list);

此时已经将需要的页面信息封装到pageInfo中了,如果前端不需要返回这么多内容,可以自己封装一个返回类

扩展:

1、封装自己的返回类

import java.util.List;

public class PagedGridResult {
	
	private int page;			// 当前页数
	private int total;			// 总页数	
	private long records;		// 总记录数
	private List<?> rows;		// 每行显示的内容

	public int getPage() {
		return page;
	}
	public void setPage(int page) {
		this.page = page;
	}
	public int getTotal() {
		return total;
	}
	public void setTotal(int total) {
		this.total = total;
	}
	public long getRecords() {
		return records;
	}
	public void setRecords(long records) {
		this.records = records;
	}
	public List<?> getRows() {
		return rows;
	}
	public void setRows(List<?> rows) {
		this.rows = rows;
	}
}

2、举例使用

    @Transactional(propagation = Propagation.SUPPORTS)
    @Override
    public PagedGridResult queryPagedComments(String itemId, Integer level, Integer page, Integer pageSize) {
        Map<String, Object> map = new HashMap();
        map.put("itemId",itemId);
        map.put("level", level);

        /**
         * page: 第几页
         * pageSize: 每页显示条数
         */
        PageHelper.startPage(page, pageSize);

        List<ItemCommentVO> list = itemsMapperCustom.queryItemComments(map);

        return setterPageGrid(list, page);
    }

    /**
     * 将pageInfo在封装一次,封装成自己项目想要的返回内容
     * @param list
     * @param page
     * @return
     */
    private PagedGridResult setterPageGrid(List<?> list, Integer page){
        PageInfo<?> pageInfo = new PageInfo<>(list);
        PagedGridResult grid = new PagedGridResult();
        grid.setPage(page);
        grid.setRows(list);
        grid.setTotal(pageInfo.getPages());
        grid.setRecords(pageInfo.getTotal());
        return grid;
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot集成pagehelper 的相关文章

随机推荐

  • java-通过ip获取地址

    添加maven依赖
  • 关于ArcMap中打开ArcToolbox导致闪退的解决办法

    最近好久不用ArcGis的小编要用到ArcMap去发送一个GP服务 发现按照套路打开ArcMap点击ArcToolbox时 发生了ArcMap的闪退现象 几经周折终于解决了问题 希望也遇到这类问题的同学能够参考解决 而不是无脑的去重装软件
  • C# 实现ESC退出窗口的几种方法

    实现ESC退出窗口的几种方法 引言 方法一 同步按钮法 方法二 监听按键法 方法三 隐藏按钮法 最后 引言 我们通常用通过点击取消按键或者右上角的 X 盒子退出的方法来实现关闭当前Form窗体 但要使用按键ESC退出关闭窗口就显得更加高级了
  • 解决SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]的方案!!!!!

    目录 前提 一 安装maven helper插件 1 安装 2 安装成功 3 使用 二 去掉冲突的依赖包 1 前面已找到目标依赖 去pom文件内操作 2 去除 3 最后就可以了 前提 今天单元测试遇到了jar包冲突 SLF4J Class
  • 自己学驱动17——ARM工作模式和ARM9寄存器

    1 ARM体系CPU的7种工作模式 1 用户模式 usr ARM处理器正常的程序执行状态 2 快速中断模式 fiq 用于高速数据传输或通道处理 3 中断模式 irq 用于通用的中断处理 4 管理模式 svc 操作系统使用的保护模式 5 数据
  • 【Python】PyCharm中调用另一个文件的函数或类

    欢迎来到Python专栏 PyCharm中调用另一个文件的函数或类 o o 嗨 我是小夏与酒 博客主页 小夏与酒的博客 该系列文章专栏 Python学习专栏 文章作者技术和水平有限 如果文中出现错误 希望大家能指正 欢迎大家关注 目录 Py
  • 数据结构:栈

    文章目录 栈 一 概述 二 添加数据 三 删除数据 栈 一 概述 栈 Stack 是一种特殊的线性表 它只允许在一端进行插入和删除操作 通常被称为 后进先出 Last In First Out LIFO 的数据结构 栈由一系列元素组成 每个
  • python常见的三种格式化输出

    Author Father Teng Name input name Age int input age Job input job info info of 0 Name 0 Age 1 Job 2 format Name Age Job
  • 【源码改造】Flink-jdbc-connector源码简析+改造支持谓词下推

    一 需求背景分析 flink sql在维表关联时 会有一个场景 当右表的数据量比较大且有些数据虽然符合join条件 但其实对于下游来说数据可能没用 这样就浪费了flink的计算资源 且拉低了数据处理能力 如果在join前就把维表的数据进一步
  • rac术语小结

    author skatetime 2010 03 01 rac术语小结 CSS 集群同步服务 Cluster Syncronization Service 功能 Manages the cluster configuration by co
  • 一文搞定SpringSecurity+vue前后端分离

    我好菜啊 学了好几天才明白一点点 前言 把v部落git下来学一学 比起halo来说v部落会更加简单好懂一点 我看他用了SpringSecurity来做登录验证 那第一步就是学学这个SpringSecurity 然后我就发现了 我真的是太菜了
  • Linux如何强制关闭任务进程(Linux版任务管理器)

    问题描述 有时我们在使用Linux软件时会碰到软件卡死或者软件BUG无法退出 如何像使用Windows任务管理器一样去关闭应用呢 其实不需要通过重启系统来解决此类问题 只需要按照如下步骤即可解决 解决方案 第一步 打开Terminal终端控
  • 搭建redis主从复制(读写分离)

    一 主从复制原理 在搭建redis读写分离架构时 master必须开启持久化 可参考博客 RDB和AOF持久化策略一起使用也行Redis的持久化机制 RDB和AOF 1 p f 的博客 CSDN博客 一旦master宕机 虽然slave可以
  • Windows server 2016 powershell基本命令和web服务部署

    一 powershell命令 进入powershell 使用win r调出运行 gt 在运行中输入powershell 查看服务命令 Get WindowsFeature 命令可以加参数 不加则是显示全部 安装命令 Install Wind
  • Datawhale go语言学习 10反射机制

    go 语言中Type是反射的数据类型 Value是具体的值 原文档中的反射机制三个原则表述为 Reflection goes from interface value to reflection object Reflection goes
  • 【异常】RuntimeError: Failed to process string with tex because latex could not be found

    1 异常描述 RuntimeError Failed to process string with tex because latex could not be found RuntimeError Failed to process st
  • GLSL-WebGL着色器语言语法详解

    GLSL语法 GLSL它是强类型语言 每一句都必须有分号 它的语法和 typescript 挺像 GLSL的注释语法和 JS 一样 变量名规则也和 JS 一样 不能使用关键字 保留字 不能以 gl webgl 或 webgl 开头 运算符基
  • < Linux >:Linux 环境基础开发工具使用 (3)

    目录 一 Linux 调试器 gdb 的使用 1 1 背景 1 2 开始使用 1 3 理解 二 Linux项目自动化构建工具 make与Makefile makefile 2 1 背景 2 2 项目结构 三 Linux 系统中第一个小程序
  • 生活当中调整时钟时间背后发生的事情

    生活当中调整时钟时间背后发生的事情 我们在生活当中想要设定时钟 手表的时间的事情 我们通过会和大多数人一样 会按照手机上的时间来设定 但是 这背后发生了什么事情 我想大部分人应该是不知道的 其实我们自己的时间是自动设定 每隔一阵子 我们的手
  • springboot集成pagehelper

    1 导入pom xml