PageHelper

pagehelper是mybatis 提供的分页插件,目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库。

使用方法

原始样式,每页显示多条数据,现在的需求是每页显示4条数据

后端

导入依赖

依赖: pagehelper

开始分页

Service 方法调用SQL查询前添加 PageHelper.startPage

PageHelper.startPage(1, 20);

这里有两个参数,分别为:page=1,rows=20。默认请求第一页,每页显示20条数据

先PageHelper.startPage(1, 10)开始分页,再selectlist查询数据库的时候会自动加上limit 1,10。
得到这样的结果:查询结果也是会带上分页信息(已验证,你们可以自己去验证看一下)

原理

首先是在Mybatis里面配置了分页拦截器(PageInterceptor),即在执行相关Sql之前会拦截做一点事情;

这里通过setLocalPage()方法,将分页信息保存在当前线程中。查询方法与之处于同一个线程中,共享ThreadLocal中的数据。

selectlist查询之后赋值给的List list。这个list是Page 类型。

再将list放到PageInfo<>中即可。

查询

List<TbItem> list = tbItemMapper.selectByExample(tbItemExample);

分页结果与展示

取分页信息,使用PageInfo对象获取分页信息。

 PageInfo<TbItem> pageInfo = new PageInfo<>(list);  System.out.println("总记录数:"+pageInfo.getTotal());  System.out.println("总页数:"+pageInfo.getPages());  System.out.println("一页的大小:"+pageInfo.getSize());  

PageInfo里面的属性

 private int pageNum;//当前页码private int pageSize;//设置每页多少条数据
private int size;//当前页有多少条数据
private int startRow;//当前页码第一条数据的
private int endRow;//当前页码的开始条
private int pages;//当前页码结束条
private int prePage;//上一页(页面链接使用)
private int nextPage;//下一页(页面链接使用)
private boolean isFirstPage;//是否为第一页
private boolean isLastPage;//是否为最后一页
private boolean hasPreviousPage;//是否有前一页
private boolean hasNextPage;//是否有下一页
private int navigatePages;//导航页码数(就是总共有多少页)
private int[] navigatepageNums;//导航页码数(就是总共有多少页),可以用来遍历
private int navigateFirstPage;//首页号
private int navigateLastPage;//尾页号

PageHelper详解相关推荐

  1. 【重温版】MyBatis详解

    文章目录 1.Mybatis简介 1.MyBatis历史 2.MyBatis特性 3.MyBatis下载 4.和其它持久化层技术对比 2.搭建MyBatis 1.开发环境 2.创建maven工程 3. ...

  2. java搜索代码_Java实现搜索功能代码详解

    首先,我们要清楚搜索框中根据关键字进行条件搜索发送的是get请求,并且是向当前页面发送get请求 //示例代码 请求路径为当前页面路径 "/product" 当我们要实现多条件搜索 ...

  3. java 搜索_Java实现搜索功能代码详解

    首先,我们要清楚搜索框中根据关键字进行条件搜索发送的是Get请求,并且是向当前页面发送Get请求 //示例代码 请求路径为当前页面路径 "/product" 当我们要实现多条件搜索 ...

  4. 6大常用数据分析模型详解

    转自:https://www.toutiao.com/i6906745504798097933/ 在进行数据分析过程中,我们通常需要使用各种模型来证明自己的分析观点,使自己的结论更具备说服力,同时也让 ...

  5. Mybatis Plus 入门 简单的CRUD 使用详解 条件查询 分页查询 DML操作 MP代码生成器

    Mybatis Plus入门 MP是 MybatisPlus,简称MP,是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变.MP为简化开发.提高效率而生. 它已经封装好了 ...

  6. SSM框架整合:各种配置文件的整合和详解

    SSM框架整合:各种配置文件的整合和详解 前言 学习了ssm框架的整合之后,对于数量众多的配置文件,和各种不同的配置方式感到甚是头疼,接下来教给大家一个清晰明白的配置,分门别类的配置不同的xml文件. ...

  7. 深入浅出 万字详解 MyBatis看这一篇就够了!

    三层架构 界面层 Controller -> SpringMVC User interface layer,表示层,视图层,接受用户数据显示请求结果.使用web页面和用户交互,如jsp.html ...

  8. Spring+SpringMVC+Mybatis SSM框架详解

    一.JDBC编程 1.JDBC 简介 JDBC其实就是 Java 官方提供的一套规范(接口),用于帮助开发人员快速实现不同关系型数据库的连接. 程序运行的时候,数据都是在内存中的.当程序终止的时候,通 ...

  9. 详解MyBatis的Dao层实现和配置文件深入

    这篇文章主要为大家详细介绍了MyBatis的Dao层实现和配置文件深入,文中的示例代码讲解详细,感兴趣的小伙伴快来跟随小编一起学习一下 目录 [Mybatis的Dao层实现] [传统开发方式] [代理 ...

最新文章

  1. R语言-解决问题:程辑包‘xxx’是用R版本3.3.4 来建造的
  2. 同一个电脑安装两个jdk版本
  3. tf.name_scope与tf.variable_scope
  4. 安卓代码还是xml绘制页面_我们应该绘制实际还是预测,预测还是实际还是无关紧要?
  5. Unity3D-声音处理
  6. AuthenticationManager验证原理分析
  7. 编写函数实现列表平面化
  8. umi3 如何管理model_umi -- model 的注册与使用
  9. tx2 刷机, cudnn安装失败,手动安装
  10. PHP是迄今为止最好的web平台
  11. windows server 安装php环境
  12. python sqlserver 数据操作_python上手--python操作数据库
  13. java下载m3u8视频,解密并合并ts(一)
  14. 微软产品下载地址。MSDN 我告诉你。
  15. 星际争霸2Beta测试版单机模式已经破解
  16. 配置 nginx server 出现nginx: [emerg] root directive is duplicate in /etc/nginx/server/blogs.conf:107...
  17. Python小记---你不在意的小细节
  18. 使用Java操纵Excel表格
  19. c语言罗马数字转十进制,罗马数字转十进制的三种方法
  20. 记录ubuntu22.04突然连不上网

热门文章

  1. 安装Ubuntu, 使用guile
  2. 利用python scrapy 框架抓取豆瓣小组数据
  3. Linux加密解压缩-zip-tar
  4. mysql数据库实验报告二
  5. android获取imei兼容_Android中获取IMEI码的方法
  6. Simple-BEV: 多传感器BEV感知真正重要的是什么?(斯坦福大学最新)
  7. Googlplay 应用发布(上架)流程,有图有现场
  8. 马斯克:把你们的代码都打印出来
  9. HTML 里 img 元素的 src 和 srcset 属性有何区别?
  10. 学考228XK_80计算机,复旦选课学概论.doc