PageHelper分页功能的简单实现

      PageHelper是一个开源的Java分页插件,可以帮助开发者在MyBatis、Hibernate等持久层框架中实现分页功能。它提供了一系列的静态方法,可以简化分页查询的操作。

使用PageHelper进行分页,首先需要在项目中引入PageHelper的依赖,然后在代码中配置分页参数,并调用分页查询的方法。

下面是一个使用PageHelper进行分页查询的示例:

  1. 引入PageHelper的依赖
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>最新版本号</version>
</dependency>

     2.在代码中配置分页参数:

import com.github.pagehelper.PageHelper;// 设置分页参数,pageNum表示当前页码,pageSize表示每页显示的记录数
PageHelper.startPage(pageNum, pageSize);

    3.调用分页查询的方法:

      //列表功能Map<String, Object> map = new HashMap<>();map.put("name",request.getParameter("ename"));List<Etp> list= myService.list(map);

  4.获取分页结果:

// 获取分页信息
PageInfo<User> pageInfo = new PageInfo<>(userList);// 获取分页数据
List<User> pageData = pageInfo.getList();// 获取总记录数
long total = pageInfo.getTotal();map.put("movieList", pageInfo.getList());map.put("pre", pageInfo.getPrePage());map.put("next", pageInfo.getNextPage());map.put("pages", pageInfo.getPages());map.put("lastPage",pageInfo.getLastPage());map.put("PageNum",pageInfo.getPageNum());/*返回页面*/request.setAttribute("map",map);request.getRequestDispatcher("list.jsp").forward(request,response);

通过以上步骤,就可以使用PageHelper进行分页查询了。它会自动在查询语句中添加分页的SQL语句,实现数据的分页查询功能。

需要注意的是,PageHelper是一个基于拦截器的插件,所以在使用时需要保证分页查询的代码位于拦截器设置的范围内。另外,PageHelper还提供了一些其他的功能,如排序、 count查询等,可以根据实际需求进行配置和使用。

    然后简绍一下PageInfo类:

               ageInfo类是Java中的一个分页插件,用于对分页查询结果进行封装和处理。它主要提供以下几个重要的方法:     

  1. getPageNum():获取当前页码;
  2. getPageSize():获取每页显示的数据条数;
  3. getTotal():获取总数据条数;
  4. getPages():获取总页数;
  5. getList():获取当前页的数据列表;
  6. isHasPreviousPage():判断是否有前一页;
  7. isHasNextPage():判断是否有后一页;
  8. navigatePages(int pages):获取当前页码附近指定数量的页码列表。

这些方法可以帮助我们方便地进行分页查询结果的处理和展示。其中,getPageNum()、getPageSize()、getTotal()、getPages()和getList()方法是最常用的,用于获取分页后的查询结果相关信息和数据列表;isHasPreviousPage()和isHasNextPage()方法可以判断是否存在前一页和后一页,以便进行相应的分页导航;navigatePages(int pages)方法可以获取当前页码附近指定数量的页码列表,用于分页导航时展示页码链接。

除了以上常用的方法外,PageInfo类还提供了一些其他的方法,比如setOrderBy()、setOrderByOnly()、setReasonable()等,用于设置分页排序、分页合理化处理等。这些方法可以根据具体需求进行使用和配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/626157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv的SIFT样例(CPP/python)

Python代码的实现&#xff1a; import cv2 import numpy as np import time import os def main():images os.listdir(./images/)pre_image cv2.imread(./images/1.jpg, 0)print("images:",images)# 初始化 SIFT 和 SURFsift cv2.xfeatures2d.SIFT_create()# sur…

博客摘录「 性能优化:__builtin_expect详解」2024年1月15日

性能优化&#xff1a;__builtin_expect详解___builtin_expect对性能的影响-CSDN博客https://blog.csdn.net/chudongfang2015/article/details/75710848 #define LIKELY(x) __builtin_expect(!!(x), 1) __builtin_expect宏定义中为何写成!!(x)&#xff1f; 首先__buildin_expec…

从零开发短视频电商 PaddleOCR Java推理 (四)优化OCR工具类

从零开发短视频电商 PaddleOCR Java推理 &#xff08;四&#xff09;优化OCR工具类 参考&#xff1a;https://github.com/mymagicpower/AIAS/blob/9dc3c65d07568087ac71453de9070a416eb4e1d0/1_image_sdks/ocr_v4_sdk/src/main/java/top/aias/ocr/OcrV4RecExample.java import …

晶振线路匹配需要进哪一些测试

晶振线路匹配的测试对于确保晶振性能的稳定性和可靠性至关重要&#xff0c;那么晶振线路匹配需要进哪一些测试呢? 晶振线路匹配测试是确保晶振性能稳定性和可靠性的关键环节。为了全面评估晶振的性能&#xff0c;需要进行一系列的测试&#xff0c;包括负载电容测试、驱动电平…

Django命令模块

这篇文章我们主要来介绍一下关于 Django 的命令模块&#xff0c;我们经常会使用到&#xff0c;比如以下几个常用的命令&#xff0c;都属于 Django 的命令模块&#xff1a; python manage.py makemigrations python manage.py migrate python manage.py startapp python manage…

电脑的硬件介绍

电脑的硬件有哪些&#xff1f; 1. 处理器&#xff08;CPU&#xff09;&#xff1a;CPU就像是计算机的大脑。它负责执行各种计算任务和指令&#xff0c;让你的计算机能够正常工作。它是电脑的核心组件&#xff0c;直接影响性能。 通常来说&#xff0c;Intel Core i5或AMD Ryze…

计算3种颜色粉刷立方体的所有可能方法

“&#xff08;伯恩赛德引理&#xff09;设G是一个作用在有限集合X上的有限群&#xff0c;令N为轨道的个数&#xff0c;则 其中Fix(x)是被τ固定的x∈X的个数.“ *高等近世代数 Joseph J. Rotman P78 “设G是一个有限群&#xff0c;作用在集合X上。对每个g属于G令X^g表示X中在g…

K8s(三)Pod资源——pod亲和性与反亲和性,pod重启策略

目录 pod亲和性与反亲和性 pod亲和性 pod反亲和性 pod状态与重启策略 pod状态 pod重启策略 本文主要介绍了pod资源与pod相关的亲和性&#xff0c;以及pod的重启策略 pod亲和性与反亲和性 pod亲和性&#xff08;podAffinity&#xff09;有两种 1.podaffinity&#xff0c;…

大模型学习篇(一):初识大模型

目录 一、大模型的定义 二、大模型的基本原理与特点 三、大模型的分类 四、大模型的相关落地产品 五、总结 一、大模型的定义 大模型是指具有数千万甚至数亿参数的深度学习模型。大模型具有以下特点&#xff1a; 参数规模庞大&#xff1a;大模型的一个关键特征是其包含了…

在 Linux 本地部署 stable diffusion

由于工作站安装的是 ubuntu&#xff0c;卡也在上面&#xff0c;就只能在 ubuntu 上部署安装 stable diffusion 了。另外&#xff0c;Linux 上使用 stable diffusion 也会方便很多。 1 准备工作 NVIDIA 官网下载驱动&#xff0c;主要是为了规避多卡驱动不同的问题。由于本机是…

机器学习_梯度下降

文章目录 什么是梯度梯度下降梯度下降有什么用 什么是梯度 计算梯度向量其几何意义&#xff0c;就是函数变化的方向&#xff0c;而且是变化最快的方向。对于函数f(x)&#xff0c;在点(xo,yo)&#xff0c;梯度向量的方向也就是y值增加最快的方向。也就是说&#xff0c;沿着梯度…

【QML COOK】- 009-组件(Components)

组件对于QML来说就如同C的类一样。可以用同一个组件创建多个对象。 组件有两种定义方式&#xff1a; 用独立的.qml文件定义组件在.qml文件中用Component对象定义组件 1. 创建项目&#xff0c;新建文件IndependentComponent.qml import QtQuickRectangle {id : rootText {id…

绝地求生追封原理

绝地求生追封原理是指在网络游戏《绝地求生》中&#xff0c;玩家通过观察和分析游戏中的各种信息&#xff0c;追踪其他玩家的位置和行动&#xff0c;以便更好地进行战术和攻击。 追封原理主要通过以下几种方式实现&#xff1a; BattleEye作弊系统检测 绝地求生玩家对这个系统…

vue中使用mpegts.js播放flv的直播视频流

第一步&#xff1a;引入mpegts.js npm install --save mpegts.js 第二步&#xff1a;在vue文件中引入mpegts.js的依赖 第三步&#xff1a;编写展示视频的盒子 我这里是使用循环遍历的方式创建video标签&#xff0c;这样方便后面随机展示视频使用 <template><div>&l…

03 顺序表

目录 线性表顺序表练习 线性表(Linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串。。。 线性表在逻辑上时线性结构&#xff0c;是连续的一条直线。但在物理结…

【RTOS】快速体验FreeRTOS所有常用API(1)工程创建

目录 一、工程创建1.1 新建工程1.2 配置RCC1.3 配置SYS1.4 配置外设1&#xff09;配置 LED PC132&#xff09;配置 串口 UART13&#xff09;配置 OLED I2C1 1.5 配置FreeRTOS1.6 工程设置1.7 生成代码1.8 keil设置下载&复位1.9 添加用户代码 本工程皆在快速体验FreeRTOS所有…

智慧公厕:打造智慧城市公共厕所信息化管理的新升级

在现代社会中&#xff0c;随着科学技术的不断进步与应用&#xff0c;智慧公厕作为公共服务设施&#xff0c;正迎来一次新的升级与革新。利用先进技术&#xff0c;智慧公厕实现了信息化升级&#xff0c;能够实时监测人员、环境和设备状况&#xff0c;提高使用效率、安全性、舒适…

微信小程序(一)简单的结构及样式演示

注释很详细&#xff0c;直接上代码 涉及内容&#xff1a; view和text标签的使用类的使用flex布局水平方向上均匀分布子元素垂直居中对齐子元素字体大小文字颜色底部边框的宽和颜色 源码&#xff1a; index.wxml <view class"navs"><text class"active…

python多线程和多进程内存共享方式

目录 一:介绍 二:多线程共享内存方式 三:多进程共享内存方式 一:介绍 在Python中,多线程和多进程都有各自的内存管理机制,并且它们的内存共享方式也不同。 对于多线

Android 11.0 mtp模式下连接pc后显示的文件夹禁止删除copy重命名功能实现

1.前言 在11.0的系统rom定制化开发中,usb连接pc端的时候有好几种模式,在做otg连接pc端的时候,改成mtp模式的时候,在pc端可以看到产品设备 的显示的文件夹的内容,对于产品设备里面的文件在pc端禁止做删除重命名拷贝等操作功能的实现 2.mtp模式下连接pc后显示的文件夹禁止删…