PageHelper是基于拦截器实现的myBatis分页插件

PageHelper的Github主页 : https://github.com/pagehelper/Mybatis-PageHelper

一.通过maven引入PageHelper的jar包

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

  

二.在myBatis配置文件中配置PageHelper

<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>

  也可以在spring中配置PageHelper,具体步骤请参考PageHelper的Github主页官方教程

三.在Controller层使用PageHelper实现分页查询

	/**
* 分页查询练习
* @param mav
* @param currentPage 当前页数
* @return
*/
@RequestMapping("/pagination")
public ModelAndView queryUsers(ModelAndView mav, Integer currentPage){
//紧挨在查询语句前调用PageHelper的startPage(int pageNum, int pageSize)方法,否则分页查询不生效
PageHelper.startPage(currentPage, 5);
//查询用户
List<User> users = ts.queryUsers();
//用PageInfo包装List查询结果,查看PageInfo源码,了解更多
PageInfo<User> pi = new PageInfo<User>(users); mav.addObject("pageInfo", pi);
mav.setViewName("test/paginationTest");
return mav;
}

  

四.JSP页面的书写方法

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PageHelper分页查询</title>
</head>
<body>
<!-- 点击查询 -->
<a href="${pageContext.request.contextPath }/test/pagination?currentPage=1">查询</a>
<!-- 有上一页的时候显示上一页 -->
<c:if test="${pageInfo.hasPreviousPage }">
<a href="${pageContext.request.contextPath }/test/pagination?currentPage=${pageInfo.prePage}">上一页</a>
</c:if>
<!-- 有下一页的时候显示下一页 -->
<c:if test="${pageInfo.hasNextPage }">
<a href="${pageContext.request.contextPath }/test/pagination?currentPage=${pageInfo.nextPage}">下一页</a>
</c:if>
<!-- 遍历查询结果 -->
<!-- 注意! 在EL表达式中,用.list即可调用pageInfo中封装的list对象 -->
<c:forEach items="${pageInfo.list }" var="u" >
<p>${u.username } + ${u.realname }</p>
</c:forEach> <br/>当前页:${pageInfo.pageNum }
<br/>总页数:${pageInfo.pages }
<br/>当前页面第一个元素在数据库中的行号:${pageInfo.startRow }
<br/>当前页面最后一个元素在数据库中的行号:${pageInfo.endRow }
</body>
</html>

  

五.其他

重点了解PageInfo类,可以自行查阅源码

关于更详细的内容(更多的配置内容和使用方法等等),请参考PageHelper官方文档

地址 : https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md

f

PageHelper实现分页查询的更多相关文章

  1. SpringBoot 使用 MyBatis 分页插件 PageHelper 进行分页查询

    前言:本文档使用的是 SpringBoot,如果是 Spring 还需要在 MyBatis 配置 xml 中配置拦截器,并且 PageHelper 是针对 MyBatis 的,MyBatis 的集成不 ...

  2. 插件PageHelper实现分页查询

    一,需求: CommonQuery--PyQueryBean PyQueryBean:鹏飞历史记录查询,以往哪些人对征信进行了查询.CommonQuery:查询条件:根据查询人(umName).被查询 ...

  3. ssm+PageHelper实现分页查询

    通过搭建ssm框架,然后通过mybatis的分页插件pagehelp进行分页查询.源码:https://gitee.com/smfx1314/pagehelper 看一下项目结构: 首先创建一个mav ...

  4. 使用PageHelper进行分页查询

    service层代码: public Result getDataSetList(String dataCode, String dataName, int pageIndex, int length ...

  5. Springboot 使用pageHelper实现分页查询

    本文链接:https://blog.csdn.net/qq_35387940/article/details/91530234

  6. 5-7 分页查询PageHelper

    1. PageHelper实现分页查询 Day08 1.1 PH作用: PageHelper框架可以实现我们提供页码和每页条数, 自动实现分页效果,收集分页信息 1.2 PH原理: PageHelpe ...

  7. SpringBoot整合Mybatis关于分页查询的方法

    最近公司在用到SpringBoot整合Mybatis时当web端页面数据增多时需要使用分页查询以方便来展示数据.本人对分页查询进行了一些步骤的总结,希望能够帮助到有需要的博友.如有更好的方式,也希望评 ...

  8. Springboot 整合通用mapper和pagehelper展示分页数据(附github源码)

    简介 springboot 设计目的就是为了加速开发,减少xml的配置.如果你不想写配置文件只需要在配置文件添加相对应的配置就能快速的启动的程序. 通用mapp 通用mapper只支持对单表的操作,对 ...

  9. 浅谈PageHelper插件分页实现原理及大数据量下SQL查询效率问题解决

    前因:项目一直使用的是PageHelper实现分页功能,项目前期数据量较少一直没有什么问题.随着业务扩增,数据库扩增PageHelper出现了明显的性能问题.几十万甚至上百万的单表数据查询性能缓慢,需 ...

随机推荐

  1. Codevs1922 骑士共存问题

    1922 骑士共存问题 题目描述 Description 在一个n*n个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘上某些方格设置了障碍,骑士不得进入. 对于给定的n*n个方格的国 ...

  2. 【python之路18】内置函数,补充请看【python之路46】

    1.abs(number)表示某个数字的绝对值 print(abs(-123)) #打印出123 2.all(iterable) 表示可迭代的参数全部为True那么返回True,否则返回False r ...

  3. POJ 1061 扩展欧几里得

    #include<stdio.h> #include<string.h> typedef long long ll; void gcd(ll a,ll b,ll& d, ...

  4. js关闭或者刷新页面后执行事件

    onbeforeunload 使用方法 window.onbeforeunload=function(){ return ''; } 有返回值才能弹出显示,或者有需要执行的事件也行.

  5. 【Vue】详解组件的基础与高级用法

    Vue.js 最核心的功能就是组件(Component),从组件的构建.注册到组件间通信,Vue 2.x 提供了更多方式,让我们更灵活地使用组件来实现不同需求. 一.构建组件 1.1 组件基础 一个组 ...

  6. mysql5.7以上版本安装

    首先下载mysql5.7zip版本 https://dev.mysql.com/downloads/mysql/5.7.html#downloads 然后放在本地解压 下载5.6版本 https:// ...

  7. python 匹配集合与补集

  8. yii生成Model出错:yii-gii-generators-model-Generator.json No such file or dictory

    讲runtime 这个文件夹添加权限 chmod o+w runtime

  9. LintCode A+B问题

    给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符. 说明 a和b都是 32位 整数么? 是的 我可以使用位运算符么? 当然可以 样例 如果 a=1 并且 b=2,返回3 1.(忽略进位 ...

  10. ubuntukylin-16.04安装

    目录 安装 虚拟机安装 系统安装 vmware tools 安装 优化 1.切换软件源 2.软件源和软件更新 3.vim插件 4.安装Sublime Text 3 5.安装福昕阅读器 6.安装Anac ...