MyBatis 的分页插件 c

前言

大型项目的数据体量很大,在前端界面展示时为保障展示效果,会要求接口快速返回,这时候后端会选择分页获取数据,只传递要查询的页码数据。这就避免了大多问题,达到快速返回的效果。

常用的分页有2种:

①  MyBatis 分页插件:PageHelper。这个插件很常用,支持多数据库分页,无需修改SQL语句即可实现分页功能。

注意:这个插件的功能相当于在你代码中的第一个 SQL 语句的后面加上 LIMIT [offset], [limit] 子句,例如 LIMIT 20, 10 ,表示从21条记录开始,获取10条记录。
这个插件 只会在你的第一条语句后面添加子句 ,如果代码后面还存在其他的 SQL 则会不生效。
如果你使用这个插件获取 UserId 列表,并用该列表进行后续操作,要注意返回的 顺序问题 。

②  PageInfo 类:这是手动分页,适合数据量小的情况,因为需要预先加载所有数据,例如预先加载所有 UserId ,对 UserId 进行划分数量,根据请求的分页参数查询处在不同数量位置的 UserId 。

本文只介绍分页插件 PageHelper ,包括使用的依赖,创建方式,代码示例和验证结果展示等。

分页插件 PageHelper 的依赖导入方式

1. 使用pagehelper 包

添加pagehelper插件的依赖,并还需要定义一个 config 文件。

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>4.1.3</version>
</dependency>
package com.wen.config;import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;@Configuration
public class MyBatisConfig {// 设置相关的参数信息,下面有对参数的详细解释@Beanpublic PageHelper pageHelper() {PageHelper pageHelper = new PageHelper();Properties properties = new Properties();properties.setProperty("dialect", "Mysql");properties.setProperty("offsetAsPageNum", "true");properties.setProperty("rowBoundsWithCount", "true");pageHelper.setProperties(properties);return pageHelper;}
}// Properties 中需设置的属性值:解释
// 1.  "dialect", "Mysql":不同数据库的SQL语句不同,这里指定了数据库语言为Mysql
// 2.  "offsetAsPageNum", "true":这个属性通常用于指定是否将传入的 offset 参数当作 pageNum 页码使用。
// ① 设置为 true,意味着如果分页查询时传递了offset偏移量,PageHelper会将其视为页码来处理。
// ② 非必需,因为 PageHelper 默认就是使用页码 pageNum 和每页记录数 pageSize 来进行分页的。
// 3.  "rowBoundsWithCount", "true":该属性用于指定是否进行 count 查询以获取总记录数。
// 在分页查询时,需要知道总记录数,它可以让你在前端展示总页数或总记录数。
// 设置为 true 表示 PageHelper 在执行分页查询时,会先执行一个 count 查询来获取总记录数。

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

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

相关文章

Linux:理解文件系统

1.理解硬件 1.1磁盘 机械磁盘是计算机中的⼀个机械设备 磁盘--- 外设 慢 容量⼤&#xff0c;价格便宜 1.2磁盘物理结构 1.3磁盘的存储结构 扇区&#xff1a;是磁盘存储数据的基本单位&#xff0c;512字节&#xff0c;块设备 如何定位⼀个扇区呢&#xff1f; 确定磁头要访…

用 openssl 测试 tls 连接

以 baidu 为例&#xff0c;命令行为&#xff1a; openssl s_client -tlsextdebug -connect baidu.com:443 得到的输出为&#xff1a; CONNECTED(00000003) TLS server extension "renegotiation info" (id65281), len1 0000 - 00 …

今日行情明日机会——20250515

上证指数缩量收阴线&#xff0c;个股跌多涨少&#xff0c;上涨波段4月9日以来已有24个交易日&#xff0c;时间周期上处于上涨末端&#xff0c;注意风险。 深证指数缩量收阴线&#xff0c;日线上涨结束的概率在增大&#xff0c;注意风险。 2025年5月15日涨停股主要行业方向分…

Axure RP9:列表新增

文章目录 列表新增思路新增按钮操作说明保存新增交互设置列表新增 思路 利用中继器新增行实现列表新增功能 新增按钮操作说明 工具栏中添加新增图标及标签,在图标标签基础上添加热区;对热区添加鼠标单击时交互事件,同步插入如下动作:显示/隐藏动作,设置目标元件为新增窗…

ArcGIS Pro调用多期历史影像

一、访问World Imagery Wayback&#xff0c;基本在我国范围 如下图&#xff1a; 二、 放大到您感兴趣的区域 三、 查看影像版本信息 点击第二步的按钮后&#xff0c;便可跳转至World Imagery (Wayback 2025-04-24)的相关信息。 四 、点击上图影像版本信息&#xff0c;页面跳转…

提高成功率!课题中的立项依据深度写作

1. 战略定位&#xff1a;在宏观愿景中界定课题坐标 立项依据的第一重任务&#xff0c;是回答“为什么要做”——但这一问并非局限于学术好奇&#xff0c;而要升维到国家战略、行业痛点与学科前沿的交汇点。教师在申报时&#xff0c;应先扫描上位政策&#xff08;如国家中长期科…

【FileZilla】Client端的线程模型 (一)

CMainFrame构造---》CFileZillaEngineContex构造--》引起其成员变量lmpl构造--》引起fz::event_loop的构造&#xff0c;其中创建了两个线程(指针) task_和 timer_task_。 // In event_loop.cpp event_loop::event_loop(thread_pool & pool): sync_(false) {task_ std::ma…

什么是Agentic AI(代理型人工智能)?

什么是Agentic AI&#xff08;代理型人工智能&#xff09;&#xff1f; 一、概述 Agentic AI&#xff08;代理型人工智能&#xff09;是一类具备自主决策、目标导向性与持续行动能力的人工智能系统。与传统AI系统依赖外部输入和显式命令不同&#xff0c;Agentic AI在设定目标…

Windows平台OpenManus部署及WebUI远程访问实现

前言&#xff1a;继DeepSeek引发行业震动后&#xff0c;Monica.im团队最新推出的Manus AI 产品正席卷科技圈。这款具备自主思维能力的全能型AI代理&#xff0c;不仅能精准解析复杂指令并直接产出成果&#xff0c;更颠覆了传统人机交互模式。尽管目前仍处于封闭测试阶段&#xf…

Springboot3自定义starter笔记

场景&#xff1a;抽取聊天机器人场景&#xff0c;它可以打招呼。 效果&#xff1a;任何项目导入此 starter 都具有打招呼功能&#xff0c;并且问候语中的人名需要可以在配置文件中修改。 创建自定义 starter 项目&#xff0c;引入 spring-boot-starter 基础依赖。 <dependen…

Nginx与Tomcat负载均衡集群配置指南

目录 一、资源清单 二、基础环境 三、安装配置Tomcat 四、安装配置Nginx 一、资源清单 主机 操作系统 IP地址 tomcat1 OpenEuler24.03 192.168.16.142 tomcat2 OpenEuler24.03 192.168.16.143 Nginx OpenEuler24.03 192.168.16.144 二、基础环境 hostnamectl …

【数据处理】xarray 数据处理教程:从入门到精通

目录 xarray 数据处理教程&#xff1a;从入门到精通一、简介**核心优势** 二、安装与导入1. 安装2. 导入库 三、数据结构&#xff08;一&#xff09;DataArray&#xff08;二&#xff09; Dataset&#xff08;三&#xff09;关键说明 四、数据操作&#xff08;一&#xff09;索…

网站漏洞存在哪些危害,该如何做好预防?

网站漏洞的危害及预防措施 一、网站漏洞的主要危害 网站漏洞是攻击者利用系统、应用或配置中的缺陷&#xff0c;实施恶意行为的入口。其危害包括但不限于以下方面&#xff1a; 数据泄露与隐私侵犯 危害&#xff1a;攻击者通过SQL注入、XSS等漏洞窃取用户数据&#xff08;如密…

WEB攻防-PHP漏洞解析

Web攻防之PHP漏洞解析 目录结构 引言 1.1 PHP在CTF Web方向的核心地位1.2 报告目标与结构说明1.3 PHP安全研究的方法论代码执行漏洞 2.1 漏洞原理与历史演进2.2 危险函数全解析与利用链2.3 绕过过滤的20种高级技巧2.4 实战案例&#xff1a;从CVE到CTF赛题复现2.5 防御方案与安…

YOLO11解决方案之距离计算探索

概述 Ultralytics提供了一系列的解决方案&#xff0c;利用YOLO11解决现实世界的问题&#xff0c;包括物体计数、模糊处理、热力图、安防系统、速度估计、物体追踪等多个方面的应用。 测量两个物体之间的间距被称为特定空间内的距离计算&#xff0c;YOLO11使用两个边界框的中心…

mongodb处理时区转换问题

1. 程序查询直接使用&#xff08;java&#xff09;Date即可, 因为直接支持 2. 若方便查看日期需要进行格式和时区转换 db.task.aggregate([{ $match: {userId: 113633}},{ $project: {userId: 1,endTime: 1,formattedDate: {$dateToString: {format: "%Y-%m-%d %H:%M:%S&…

基于中心点预测的视觉评估与可视化流程

基于中心点预测的视觉评估与可视化流程 基于中心点预测的视觉评估与可视化流程一、脚本功能概览二、可视化与评分机制详解1. 真实框解析2. 调用模型处理帧3. 预测中心点与真实值的对比4. 打分策略5. 图像可视化三、目录结构要求四、运行方式五、应用场景与拓展思路六、总结七,…

Comparator 比较器

在Java中&#xff0c;Comparator.comparingInt(String::length) 是一个用于创建比较器&#xff08;Comparator&#xff09;的静态方法调用&#xff0c;它的核心作用是定义一个比较规则&#xff0c;使对象按照特定属性&#xff08;这里是字符串长度&#xff09;进行比较。下面从…

无人设备遥控器之无线通讯技术篇

无人设备遥控器的无线通讯技术是确保遥控操作准确、稳定、高效进行的关键。以下是对无人设备遥控器无线通讯技术的详细解析&#xff1a; 一、主要无线通讯技术类型 Wi-Fi通讯技术 原理&#xff1a;基于IEEE 802.11标准&#xff0c;通过无线接入点&#xff08;AP&#xff09;…

Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(七)

Android Coli 3 ImageView load two suit Bitmap thumb and formal&#xff0c;Kotlin&#xff08;七&#xff09; 在 Android Coli 3 ImageView load two suit Bitmap thumb and formal&#xff0c;Kotlin&#xff08;六&#xff09;-CSDN博客 的基础上改进&#xff0c;主要是…