分页PageHelper、PageInfo

PageHelper是一个基于MyBatis的分页插件,可以帮助开发者快速、方便地实现分页功能。PageHelper支持多种数据库(包括MySQL、Oracle、SQL Server、PostgreSQL等),可以通过简单的配置即可使用。

使用PageHelper,只需要在查询方法前调用PageHelper.startPage(pageNum,pageSize)方法即可实现分页查询。其中,pageNum表示当前页码,pageSize表示每页显示的数据条数。PageHelper会自动拦截查询语句,并在其后添加limit语句实现分页功能。

PageInfo是PageHelper插件提供的一个分页信息类,可以用来获取分页查询的相关信息,如总记录数、总页数、当前页码、每页显示的数据条数、当前页的数据列表等。只需要将查询结果集传入PageInfo构造函数即可获取相关信息。

使用PageHelper和PageInfo可以方便地实现分页查询,并且代码量较少,易于维护。

在Spring Boot项目中使用PageHelper和PageInfo进行分页查询的示例代码:

  1. 在pom.xml中添加PageHelper依赖:
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.3.0</version>
</dependency>
  1. 在application.yml中添加PageHelper配置:
pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: count=countSql
  1. 在Mapper接口中添加分页查询方法:
import com.example.demo.entity.User;
import com.github.pagehelper.Page;public interface UserMapper {Page<User> selectUserByPage(int pageNum, int pageSize);
}
  1. 在Mapper.xml中编写分页查询SQL语句:
<select id="selectUserByPage" resultType="com.example.demo.entity.User">select * from user
</select>
  1. 在Service层中调用分页查询方法:
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public PageInfo<User> selectUserByPage(int pageNum, int pageSize) {// 设置分页参数PageHelper.startPage(pageNum, pageSize);// 执行查询List<User> userList = userMapper.selectUserByPage(pageNum, pageSize);// 封装分页结果PageInfo<User> pageInfo = new PageInfo<>(userList);return pageInfo;}
}
  1. 在Controller层中调用Service层的分页查询方法:
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/users/{pageNum}/{pageSize}")public PageInfo<User> selectUserByPage(@PathVariable("pageNum") int pageNum, @PathVariable("pageSize") int pageSize) {return userService.selectUserByPage(pageNum, pageSize);}
}

这样就可以在Spring Boot项目中使用PageHelper和PageInfo进行分页查询了。

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

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

相关文章

TL-WN826N无线网卡连接电脑蓝屏,提示rtl8188gu.sys

TL-WN826N无线网卡插电脑就蓝屏&#xff0c;提示rtl8188gu.sys 处理方法&#xff1a; 设备管理器中卸载其他的2.0无线网卡程序和功能中卸载网卡驱动TPlink官网下载 TL-WN826N V1.0_1.0.0&#xff08;https://www.tp-link.com.cn/product_572.html?vdownload&#xff09;&…

【Osek网络管理测试】[TG4_TC3]LimpHome状态下的睡眠中断

🙋‍♂️ 【Osek网络管理测试】系列💁‍♂️点击跳转 文章目录 1.环境搭建2.测试目的3.测试步骤4.预期结果5.测试结果1.环境搭建 硬件:VN1630 软件:CANoe 2.测试目的 验证DUT在LimpHome状态下的睡眠中断是否正确 分析:在跛脚运行状态下,满足睡眠条件后,进入到NM…

欧盟MDR法规对医疗器械网络安全都有哪些要求?

MDR&#xff0c;欧盟医疗器械法规&#xff08;Medical Device REGULATION (EU) 2017/745&#xff0c;简称“MDR”&#xff09;&#xff0c;当医疗器械办理欧盟CE认证时&#xff0c;需满足新法规 MDR (EU) 2017/745要求。 M DR符合性评估 医械网络安全咨询与相关文件出具&#x…

【Linux】项目自动化构建工具make/makefile

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; Linux &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解Linux中项目自动化构建工具make/makefile的相关内容。 如果看到最后…

【知识碎片】2024_05_09

本篇记录了关于C语言的一些题目&#xff08;puts&#xff0c;printf函数的返回值&#xff0c;getchar&#xff0c;跳出多重循环&#xff09;&#xff0c;和一道关于位运算的代码&#xff3b;整数转换&#xff3d;。 C语言碎片知识 如下程序的功能是&#xff08; &#xff09; #…

从古代故事中领悟高情商回话

页面 页面代码 <% layout(/layouts/default.html, {title: 故事管理, libs: [dataGrid]}){ %> <div class"main-content"><div class"box box-main"><div class"box-header"><div class"box-title">&l…

FPGA+MCU+SDRAM方案,用于服装厂生产过程中以及设计过程中制作样板,剪裁布料

FPGAMCUSDRAM方案&#xff0c;用于服装厂生产过程中以及设计过程中制作样板&#xff0c;剪裁布料 客户应用&#xff1a;服装厂制衣 主要功能&#xff1a; 1.支持步进电机、直流电机 2.支持同时3轴电机协调工作 3.支持以太网/USB联机控制 4.支持LCD 屏显示状态 5.支持HP11/…

Rust多线程交叉打印+Send Sync特征讲解

导航 Rust多线程交叉打印Send Sync特征讲解 一、Rust多线程交叉打印二、Send Sync 特征讲解 Rust多线程交叉打印Send Sync特征讲解 一、Rust多线程交叉打印 先说背景有两个线程&#xff0c;分别为0号线程和1号线线程两个线程交叉打印共享值&#xff0c;并将共享值1当标志为fa…

基于STM32的云端灌溉系统毕业设计

基于STM32的云端灌溉系统毕业设计 一、项目背景与意义 随着全球气候的变化和水资源短缺问题的日益严峻&#xff0c;传统的灌溉方式已不能满足现代农业发展的需求。智能灌溉系统以其节水、高效的特点逐渐成为研究的热点。本项目旨在设计一款基于STM32微控制器的云端灌溉系统&a…

Qt:网页嵌入与应用集成

这个专栏&#xff0c;主要用来记录分享一些使用Qt进行嵌入网页以及第三方应用相关技术的文章。本篇作为此专栏的快速导航。后续随着技术的不断研究和深入&#xff0c;会持续更新。 《QCefView&#xff08;1&#xff09;—— CMAKE项目、库文件生成和项目测试》 《QCefView&…

制鞋5G智能工厂数字孪生可视化平台,推进行业数字化转型

制鞋5G智能工厂数字孪生可视化平台&#xff0c;推进行业数字化转型。随着科技的飞速发展&#xff0c;5G技术与智能制造的结合正成为推动制鞋行业数字化转型的重要力量。制鞋5G智能工厂数字孪生可视化平台&#xff0c;不仅提高了生产效率&#xff0c;还优化了资源配置&#xff0…

2024.5.9 作业 xyt

1. 创建一对父子进程&#xff1a; 父进程负责向文件中写入 长方形的长和宽 子进程负责读取文件中的长宽信息后&#xff0c;计算长方形的面积 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <…

从0开始linux(2)——热键、如何查阅手册

欢迎来到博主的专栏——从0开始linux 博主ID&#xff1a;代码小豪 博主使用的linux发行版&#xff1a;CentOS 7.6 文章目录 热键[Tab]热键Ctrl cshift[pageup]和[pagedown] 查阅手册\-\-help在线手册maninfo手册 热键 我们的命令行模式中存在很多的组合热键&#xff0c;这些按…

������森林消防泵:特点及使用场景 /恒峰智慧科技������

在大自然的怀抱中&#xff0c;森林是地球上最美丽的绿色家园。然而&#xff0c;森林火灾却时常威胁着这片美丽的家园。为了保护森林&#xff0c;我们有幸拥有了一支强大的森林消防泵队伍。今天&#xff0c;就让我们一起来了解一下这些守护者们的故事吧&#xff01; &#xfffd…

PAT 1041 Be Unique

原题链接&#xff1a;PAT 1041 Be Unique Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1,10 4 ]. The first one who bets on a unique number…

电脑ip地址设置成什么比较好

随着信息技术的快速发展&#xff0c;IP地址已成为电脑在网络世界中的“身份证”。它不仅是电脑在网络中进行通信的基础&#xff0c;也直接关系到网络连接的稳定性、安全性和效率。然而&#xff0c;面对众多IP地址设置选项&#xff0c;许多用户可能会感到困惑。那么&#xff0c;…

创建JavaEE项目时,软件版本组合(Tomcat,JDK)

用Tomcat9&#xff0c;包名是javax.servlet-api 用Tomcat10或11&#xff0c;包名是jakarta.servlet-api 1 软件版本组合&#xff08;Tomcat&#xff0c;JDK&#xff09; 不是强制要求&#xff0c;只是创建项目一般这样选 1.1 JavaEE 8项目 Tomcat版本JDK版本JavaEE版本Tomc…

JavaWeb中的Session和Cookie

前言 什么是会话跟踪技术 Cookie 1.什么是cookie 2.Cookie的应用 2.1 保持用户登录状态 2.2 记录用户名 3. Cookie的设置和获取 3.1 、通过HttpServletResponse.addCookie的方式设置Cookie 3.2、浏览器中查看cookie的内容 3.3、服务端获取客户端携带的cookie&#xf…

华为eNSP学习—IP编址

IP编址 IP编址子网划分例题展示第一步:机房1的子网划分第二步:机房2的子网划分第三步:机房3的子网划分IP编址 明确:IPv4地址长度32bit,点分十进制的形式 ip地址构成=网络位+主机位 子网掩码区分网络位和主机位 学此篇基础: ①学会十进制与二进制转换 ②学会区分网络位和…

MySQL中的字符集陷阱:为何避免使用UTF-8

引言 在数据库管理中&#xff0c;理解字符集和编码是至关重要的。字符集定义了一组字符的编码规则&#xff0c;而编码则是将这些字符转换成计算机可识别的二进制形式的过程。MySQL作为最受欢迎的开源关系型数据库之一&#xff0c;在处理字符集和编码时也有其独特之处。 尽管U…