如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。——PageHelper官网。

后端实现

<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.11</version> </dependency>

在MyBatis配置文件中添加插件

使用PageHelper需要在MyBatis的全局配置文件中加入如下配置,其中数据库的方言需要根据使用数据库的情况自行配置。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><plugins><!-- com.github.pagehelper 为 PageHelper 类所在包名 --><plugin interceptor="com.github.pagehelper.PageHelper"><!-- 支持数据库类型: Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL --><property name="dialect" value="mysql"/></plugin></plugins>
</configuration>

创建PageResult类

使用分页时,往往会向前端传递总页数以及每页的内容,即total和List。鉴于在程序中我们会大量使用分页,所以实现分页的第一步就是创建一个PageResult类。

此类中包含total、rows两个属性。由于该类中的rows不代指任一类型,所以无法指定泛型。

如果要使用dubbo等RPC技术请务必实现Serializable接口。

package entity;import java.io.Serializable;
import java.util.List;/*** Created by rayfoo@qq.com Luna on 2020/4/13 0:44*/
public class PageResult implements Serializable {//总记录数private Long total;//当前页内容private List rows;public Long getTotal() {return total;}public void setTotal(Long total) {this.total = total;}public List getRows() {return rows;}public void setRows(List rows) {this.rows = rows;}public PageResult(Long total, List rows) {this.total = total;this.rows = rows;}public PageResult() {}
}

编写代码

首先编写Controlelr层代码

  • 先创建一个findPage()方法,接收前端传递的需要查询的页码(PageNo)和每页数据的条目(PageSize)。
    @RequestMapping("/findPage")public PageResult findPage(Integer pageNo,Integer pageSize){return brandService.findPage(pageNo,pageSize);}

在Service层也非常简单

  • 直接在查询所有的语句的上一行加上PageHelper.startPage(pageNo,pageSize);就可以实现分页查询。
  • 在查询所有时,需要将返回结果强转为Page对象。
      @Overridepublic PageResult findPage(Integer pageNo, Integer pageSize) {//开启分页PageHelper.startPage(pageNo,pageSize);//查询数据Page<User> page = (Page<Brand>) userMapper.selectByExample(null);//返回结果return new PageResult(page.getTotal(),page.getResult());}

测试

此时,直接在前端调用localhost:8080/user/findPage?pageNo=1&pageSize=5即可获取第一页的五条数据。

【Java】pageHelper实现分页相关推荐

  1. mybatis pagehelper实现分页

    jar包的版本一定要对应,不然会出现一系列的问题 下载jar包 <properties>           <!-- spring版本号 -->           < ...

  2. 使用PageHelper实现分页查询(详细)

    使用PageHelper实现分页查询(详细): 实现环境: 语言 编程工具 框架 分页插件 前端 前端数据获取 Java IDEA SpringBoot pageHelper BootStrap Th ...

  3. Java后端数据分页问题

    文章目录 前言 一.简易分页 二.使用Page工具封装分页(Mybatis) 1.定义相关方法及工具 2.后端方法 总结 前言 Java后端数据分页问题. 一.简易分页 前端传入分页起始页start, ...

  4. springboot使用PageHelper实现分页

    使用mybatis最头疼的就是写分页,需要先写一个查询count的select语句,在写一个真正的limit查询语句,所以花费很长的时间,这里咋们可以使用PageHelper实现分页. 1.首先引入p ...

  5. 用limit 实现java的简单分页

    https://blog.csdn.net/xinyuezitang/article/details/84324359 用limit 实现java的简单分页 xinyuezitang 2018-11- ...

  6. pagehelper 不分页的解决方法

    pagehelper 不分页的解 pagehelper PageHelper.startPage(1, 10);只对该语句以后的第一个查询语句得到的数据进行分页, 就算你在PageInfo pa = ...

  7. PageHelper 关闭COUNT(0)查询 以及PageHelper 的分页原理分析

    pagehelper 关闭count(0)查询 以及pagehelper的分页原理分析 情景再现:在给移动端提供分页查询数据接口时,知道他们不需要总条数.但是使用pagehelper 分页查询打印的s ...

  8. Springboot Mybatis使用PageHelper实现分页查询

    以下介绍实战中数据库框架使用的是mybatis,对整合mybatis此处不做介绍. 使用pageHelper实现分页查询其实非常简单,共两步: 一.导入依赖: pom.xml添加依赖: <!-- ...

  9. java web几百万分页_举例详解用Java实现web分页功能的方法

    举例详解用Java实现web分页功能的方法 发布于 2020-11-25| 复制链接 摘记: 分页问题是一个非常普遍的问题,开发者几乎都会遇到,这里不讨论具体如何分页,说明一下Web方式下分页的原理. ...

  10. springboot+mybatis 利用PageHelper插件分页,结果第二页的返回分页信息还是和第一页一样。

    正常使用PageHelper来分页时可以的,但是如果在查询list后做了非常多的处理,即解包在装包操作.可能最后返回时分页的数据查询的对,但是分页信息就有问题了.有的甚至分页功能都不行.这里为避免几个 ...

最新文章

  1. github组织存储库使用_为什么我不使用您的GitHub存储库
  2. 阿里正式取消周报:打击低效加班,拒绝形式主义!
  3. powerdesigner自动生成代码的修改
  4. OpenGL 加载模型Model
  5. 51Nod - 1381 硬币游戏
  6. mysql timestamp排序_对多个表进行排序MYSQL TimeStamp
  7. fullpage常用配置
  8. 我发现每一个生意做得不错的人都很会说话
  9. TCP/IP协议简介
  10. android 录音机 apk,实时录音机
  11. 2. 创建多网站和商店(Creating Multiple Websites and Stores)
  12. java text类型转换_java语言实现Text格式转换成pdf文件
  13. 学生信息管理系统结构图
  14. 《客户端性能测试基本流程》
  15. ps出现标尺的快捷键,隐藏参考线,把隐藏的参考线显示出来的快捷键。
  16. 谱瑞PS8625替代方案|PS8622替代方案|高性价比EDP转LVDS转接板方案CS5211设计开发
  17. Bumped!【迪杰斯特拉消边、堆优化】
  18. OSPF报文与LSA
  19. PNP和NPN磁感应开关有什么区别
  20. c语言中eof的作用,C语言中,怎么用EOF结束输入?

热门文章

  1. 双麦阵列拾音束降噪模块A-68连接应用说明和强噪音下测试效果
  2. 计算思维不是计算机科学的核心素养,基于核心素养“计算思维”的信息技术教学研究...
  3. MEMORY系列之“FRAM”
  4. 【读书2】【2014】基于MATLAB的雷达信号处理基础(第二版)——随角度变化的影响(4)
  5. 北京大学高性能计算平台未名教学一号使用入门(仅限北大在校学生使用)
  6. 用同文输入法,实现五笔双键布局
  7. map双键-值对及特殊键值对
  8. 《双人成行》和制作人约瑟夫·法斯(Josef Fares)
  9. 面试问题(java cas有什么优点和问题)
  10. Laya Air+Unity3D双引擎带你做个天空球3D小游戏(上篇)