PageHelper使用说明文档

文章目录

    • 一、简介
    • 二、集成步骤
    • 三、使用方法
    • 四、注意事项
    • 五、高级用法

一、简介

PageHelper 是一个开源的 MyBatis 分页插件,它可以帮助我们在使用 MyBatis 进行数据库操作时方便地实现分页功能。通过简单的配置和少量的代码修改,就可以在查询数据时实现分页效果,大大提高了开发效率。

二、集成步骤

  1. 添加依赖
    如果你使用的是 Maven 项目,在 pom.xml 中添加以下依赖:
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>最新版本号</version> 
</dependency>

你可以在 Maven 中央仓库 中查找最新的版本号。


  1. 配置 PageHelper
    如果你使用的是 Spring Boot 项目,PageHelper 会自动进行配置,无需额外的配置。如果是传统的 Spring 项目,需要在 MyBatis 的配置文件中添加 PageHelper 的插件配置:
<plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"><!-- 配置参数,根据需要进行调整 --><property name="reasonable" value="true"/><property name="supportMethodsArguments" value="true"/><property name="params" value="count=countSql"/></plugin>
</plugins>

配置参数说明:
reasonable:分页合理化参数,默认值为 false。当该参数设置为 true 时,pageNum 小于 1 会查询第一页,pageNum 大于总页数会查询最后一页。
supportMethodsArguments:支持通过 Mapper 接口参数来传递分页参数,默认值为 false。
params:为了支持 startPage(Object params) 方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值。


三、使用方法

基本分页查询
在需要进行分页查询的方法中,调用 PageHelper.startPage 方法来开启分页功能,然后执行查询操作。示例代码如下:

@Override
public JsonVO<PageInfo<XiangXiDanJvVO>> listXiangXiDanJv(XiangXiDanJvQuery query) {try {// 1. 启动分页PageHelper.startPage((int) query.getPageIndex(), (int) query.getPageSize());// 2. 执行查询(会被 PageHelper 拦截)List<XiangXiDanJvVO> list = inspurMapper.listXiangXiDanJv(query);// 3.用pageInfo包装PageInfo<XiangXiDanJvVO> page = new PageInfo<>(list);return JsonVO.success(page );} catch (Exception e) {log.error("分页查询详细单据失败:{}", e.getMessage());return JsonVO.fail(null);}
}

四、注意事项

  1. 分页方法调用顺序
    PageHelper.startPage 方法必须在执行查询方法之前调用,否则分页功能将失效。

  2. 多次分页问题
    在同一个方法中,如果需要进行多次分页查询,每次查询前都需要调用 PageHelper.startPage 方法开启分页功能。

  3. 事务问题
    在使用事务时,需要确保 PageHelper.startPage 方法在事务内部调用,否则可能会出现分页不准确的问题。


五、高级用法

  1. 排序功能
    PageHelper 支持在分页查询时进行排序。可以通过 PageHelper.startPage 方法的第三个参数来指定排序规则,示例代码如下:
PageHelper.startPage(pageNum, pageSize, "id DESC");
List<User> userList = userMapper.selectAllUsers();

上述代码表示按照 id 字段降序排序。

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

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

相关文章

grpo nl2sql qwen3 模型强化学习训练有效果的成立条件有哪些

在使用GRPO&#xff08;强化学习算法&#xff09;对Qwen3模型在NL2SQL&#xff08;自然语言到SQL转换&#xff09;任务上进行强化学习&#xff08;RL&#xff09;训练时&#xff0c;其效果成立的核心条件可归纳为以下几个关键维度&#xff0c;这些条件相互关联&#xff0c;共同…

面向向量检索的教育QA建模:九段日本文化研究所日本语学院的Prompt策略分析(6 / 500)

面向向量检索的教育QA建模&#xff1a;九段日本文化研究所日本语学院的Prompt策略分析&#xff08;6 / 500&#xff09; 系列说明 500 所日本语言学校结构化建模实战&#xff0c;第 6 篇。每篇拆解 1 所学校在 Prompt-QA 系统中的建模策略&#xff0c;分享工程经验&#xff0c;…

墨刀原型图的原理、与UI设计图的区别及转换方法详解-卓伊凡|贝贝

墨刀原型图的原理、与UI设计图的区别及转换方法详解-卓伊凡|贝贝最近有个设计由于时间比较仓促直接用 原型做的&#xff0c;但是原型做的大家都知道是没法用的&#xff0c;以下讲解原型和ui的区别&#xff0c;其次我们下面有三种方法把墨刀的原型变成UI图。一、墨刀原型图的原理…

前端 nodejs vue2 开发环境和微信开发环境 故障终极处理

现象某个vue2旧项目 引入vue-ls 组件等组件&#xff0c;冲突失败后删除,导致开发环境 vxe-table加载失败&#xff0c;还原后还是不行。前段项目崩溃。报警sass 某个方法 Deprecated &#xff0c;之前不会处理方式_失败回退代码项目代码 删除 node_modules&#xff0c; 删除 …

【后端】.NET Core API框架搭建(9) --配置使用Log4Net日志

目录 1.添加包 2.新建公用类 3.新建配置 4.注册 4.1.类库项目设置 5.使用 在 .NET Core 项目中使用 Log4Net 做日志记录&#xff0c;具有很多优势。尽管 .NET Core 自带了 ILogger 接口&#xff08;如使用内置的 ConsoleLogger、DebugLogger 等&#xff09;&#xff0c;但…

Agent交互细节

本文参考了https://www.bilibili.com/video/BV1v9V5zSEHA/视频及原作者代码实践 本文主要实践在第3节1、MCP MCP官方地址&#xff1a;https://modelcontextprotocol.io/introduction MCP 是一个开放协议&#xff0c;它规范了应用程序向 LLM 提供上下文的方式。 架构&#xff1a…

AI+医疗!VR和MR解剖学和针灸平台,智能时代如何重塑健康未来

在智能时代&#xff0c;“AI医疗”正从精准诊断入手&#xff0c;推动医疗系统变革&#xff0c;通过个性化健康管理、智能诊疗辅助等方式重塑健康未来&#xff01;将人工智能&#xff08;AI&#xff09;与虚拟实境&#xff08;VR&#xff09;应用到中医教学&#xff0c;透过该系…

Sersync和Rsync部署

学习参考连接 以下是我在学习过程中借鉴的经验和下载资源链接&#xff0c;感谢几位大佬的帮助&#xff0c;也供各位参考。 Rsync踩坑&#xff1a; https://blog.csdn.net/XiaoXiaoYunXing/article/details/120160395 Sersync下载源 http://down.whsir.com/downloads/sersy…

Django基础(四)———模板常用过滤器

前言上篇文章给大家介绍了DTL模板的部分知识点这篇文章继续带大家深入理解Django框架中的模板过滤器一、模板常用过滤器1.add将传进来的参数添加到原来的值上面。这个过滤器会尝试将值和 参数转换成整形然后进行相加。如果转换成整形过程中失败了&#xff0c;那么会将值和参数进…

国内MCP服务器搜索引擎有哪些?MCP导航站平台推荐

在人工智能技术蓬勃发展的今天&#xff0c;AI模型与外部工具和服务的交互能力正成为推动技术进步的关键。AIbase&#xff08;<https://mcp.aibase.cn/>&#xff09;作为一个专注于MCP(Model Context Protocol&#xff0c;模型上下文协议)服务器的集合平台&#xff0c;为全…

Python中with的作用和用法

在这里我们来详细解释一下Python中非常重要的 with 语句。 我会从 “为什么需要它” 开始&#xff0c;然后讲解 “它是什么以及如何使用”&#xff0c;最后深入到 “它的工作原理” 和 “如何自定义”。1. 为什么需要 with 语句&#xff1f;(The Problem) 在编程中&#xff0c;…

缓存雪崩、缓存穿透,缓存击穿

Redis是一个完全开源免费的高性能非关系型&#xff08;NOSQL&#xff09;的key-value数据库。 Redis不可能把所有的数据都缓存起来(内存昂贵且有限)&#xff0c;所以Redis需要对数据 设置过期时间&#xff0c;并采用的是惰性删除定期删除两种策略对过期键删除。Redis对过期键的…

springmvc跨域解决方案

在Spring MVC中处理跨域请求&#xff08;CORS&#xff0c;Cross-Origin Resource Sharing&#xff09;通常涉及到配置HTTP响应头&#xff0c;以允许来自不同源的请求。Spring MVC提供了多种方式来配置CORS&#xff0c;包括全局配置和局部配置。 使用CrossOrigin注解 在控制器的…

btstack移植之安全配对(二)

3.13.3 Legacy配对首先&#xff0c;我们回复的paring response中&#xff0c;可以看到我们不支持secure connection&#xff0c;所以我们走的是legacy配对模式。图3-74 secure连接不支持然后&#xff0c;master在pairing confirm包中回复了confirm value。图3-75 master发送con…

FRP配置( CentOS 7 上安装 FRP教程 )

** 如果你们公司没有公网IP&#xff0c;但是又想实现内网穿透&#xff0c;远程调用接口&#xff0c;在家也能调用公司服务器&#xff0c;但是nkg ssl有问题&#xff0c;花生壳坑壁&#xff0c;那么FRP是你最佳的选择&#xff01;&#xff01;&#xff01;** 不过有个前提&#…

第三次mysql作业

建立库建立mydb11_syu库2.创建s表&#xff0c;创建sc表二&#xff0e;插入数据向s表插入数据2.向sc表插入数据三&#xff0e;查询1.分别查询student表和score表的所有记录2.查询student表的第2条到5条记录3.从student表中查询计算机系和英语系的学生的信息4.从student表中查询年…

不同场景下git指令的搭配

添加账号 git config --global user.name "YourName" git config --global user.email "your_emailexample.com"设置 Git 默认分支名称为 main&#xff1a; git config --global init.defaultBranch main初始化仓库&#xff1a; git init配置SSH 密钥 如果…

NLP——迁移学习

一、迁移学习的概念 1.预训练模型(Pretrained model) 定义: 简单来说别人训练好的模型。一般预训练模型具备复杂的网络模型结构&#xff1b;一般是在大量的语料下训练完成的。 2.微调(Fine-tuning) 定义:一般是对预训练语言模型&#xff0c;进行垂直领域数据的微调&#xff0c;…

Ubuntu 安装

文章目录硬件准备下载 Ubuntu 镜像创建可启动 USB从 USB 驱动器启动安装 Ubuntu不要忘记更新&#xff01;用了十多年的笔记本&#xff0c;手边正好有个500G的固态&#xff0c;准备换上。考虑到机器的硬件配置&#xff0c;现在使用windows10实在是有点卡&#xff0c;ubuntu却刚好…

【46】MFC入门到精通——MFC显示实时时间,获取系统当前时间GetCurrentTime()、获取本地时间GetLocalTime()

文章目录1 MFC获取时间方法方法一&#xff1a;获取系统当前时间GetCurrentTime()方法二&#xff1a;获取本地时间GetLocalTime()使用GetTickCount()获取程序运行时间2 MFC显示实时时间 使用方法2.1 获取时间2.2 类向导 添加定时器函数 OnTimer2.3 初始化 设置定时器2.4 定时器函…