Mybatis----分页

1.什么是分页

分页(Pagination)是指将大量数据划分为多个页面进行展示的一种技术手段。在数据量较大的情况下,将所有数据一次性显示在页面上会导致加载时间过长和页面过于庞大,影响用户体验和系统性能。分页技术通过划分数据为多个页面,并提供导航控制,使用户可以按需加载和浏览数据。

通常的分页方式是根据指定的每页显示数量,将数据分为多个独立的页,每页呈现一定数量的数据。用户可以通过页码或者上一页、下一页等导航控件来切换不同的页。常见的分页信息包括当前页码、总页数、总记录数等。

如上,当我们在百度上查询的时候,查询结果通常分页展示。而在mybatis中,我们可以使用两种方式实现分页,

一是通过sql语句的limit关键字实现,二是通过Mybatis插件 PageHelper实现

2.sql语句实现分页查询

select * from account limit 起始位置  每页显示数量

如上,我们需要两个关键参数,查询的起始位置,每页显示的最大数量。

测试起始位置为2,每页显示数量最大为3

映射文件:

<select id="selectByPage" resultMap="AccountMap">select * from account limit #{offset} ,#{pageNums};
</select>

mapper接口对应的方法:

List<Account> selectByPage(@Param("offset") int offset,@Param("pageNums") int pageNums);

测试方法:

@Test
public void sqlTest3(){AccountMapper accountMapper = sqlSession.getMapper(AccountMapper.class);List<Account> accounts = accountMapper.selectByPage(2, 3);System.out.println(accounts);
}

初始数据:

查询结果:

3. PageHelper实现分页

PageHelper 是一个非常流行的 MyBatis 分页插件,它能够简化基于 MyBatis 的分页查询操作,并提供了丰富的分页查询功能。使用 PageHelper 可以在 MyBatis 中非常便捷地实现分页查询。

PageHelper 提供的功能包括:

  1. 自动进行分页查询,无需手动编写分页 SQL 语句。
  2. 支持多种数据库,如 MySQL、Oracle、SQL Server 等。
  3. 提供丰富的分页参数设置,如页码、页面大小、是否计算总数等。
  4. 支持排序功能,可以方便地指定排序字段和排序方式。

1.导入依赖

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version>
</dependency>

2.配置分页拦截器

mybatis核心配置文件中,注意标签的顺序

<plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>

3.编写映射文件

<select id="selectByPageHelper" resultMap="AccountMap">select * from account
</select>

4.编写接口

List<Account> selectByPageHelper();

5.测试

@Test
public void sqlTest4(){AccountMapper accountMapper = sqlSession.getMapper(AccountMapper.class);//开启分页功能PageHelper.startPage(1, 3);//从第一页开始,页面中条数最大数量为3List<Account> accounts = accountMapper.selectByPageHelper();System.out.println(accounts);
}

6.结果

在这个实例中我们不用在关系sql中limit关键字,PageHelper已经帮我们实现了,只需开启分页功能。

注意,第一条数据是从0开始的。

4.PageInfo获取分页详细信息

在 MyBatis 分页插件 PageHelper 中,PageInfo 对象是一个非常便利的类,用于包装分页后的结果,提供了获取分页详细信息的各种方法。

@Test
public void sqlTest4(){AccountMapper accountMapper = sqlSession.getMapper(AccountMapper.class);//开启分页功能PageHelper.startPage(1, 3);List<Account> accounts = accountMapper.selectByPageHelper();PageInfo<Account> pageInfo=new PageInfo<>(accounts);//只需传入System.out.println(pageInfo.toString());System.out.println(accounts);
}

  • getList():获取当前页的数据列表。
  • getTotal():获取总记录数。
  • getPages():获取总页数。
  • getPageNum():获取当前页的页码。
  • getPageSize():获取每页显示的条目数。
  • isHasNextPage():判断是否有下一页。
  • isHasPreviousPage():判断是否有前一页。
  • getNavigatepageNums():获取所有导航页的页码。

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

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

相关文章

为何外贸公司应该采用CRM客户管理软件?

在外贸行业中&#xff0c;客户关系管理尤为关键。在当下的大数据背景下&#xff0c;所有规模的外贸公司都迫切地需要进行数字化改造。无论是大型公司还是小型业务&#xff0c;他们都希望通过深入分析客户数据&#xff0c;为用户提供更优的体验&#xff0c;并据此调整企业战略。…

Scrum框架的自组织团队

飞行在天空中的鸟群一会排成一个“一”字&#xff0c;一会排成一个“人”字&#xff0c;它们自由飞翔&#xff0c;又根据不同的风向排列不同的队形减少阻力&#xff0c;达到最高的飞行效率。人类社会中也如此&#xff0c;没有一种不需要调整的通用方法可以适用于所有的工作场景…

【开源】基于JAVA+Vue+SpringBoot的民宿预定管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色2.2.2 房主角色2.2.3 系统管理员角色 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿4.3 新增民宿评价4.4 查询留言4.5 新增民宿订单 五、免责说明 一、摘要 1.1 项目介绍 基于…

应急响应-Linux-文件痕迹排查

敏感目录 Linux系统铭感目录如下。 /tmp /tmp目录和命令目录/usr/bin /usr/sbin等经常作为恶意软件下载根目录及相关文件被替换的目录。文件名为crloger8的木马下载到/tmp目录下&#xff0c;如图所示 ~/.ssh及/etc/ssh 需要查看是否存在.ssh或者ssh文件 ls -la /home/on…

力扣354. 俄罗斯套娃信封问题

动态规划 思路&#xff1a; 同时控制 w、h 两个维度比较复杂&#xff0c;可以先固定一个维度&#xff0c;来找出另外一个维度的严格单调序列&#xff1a; 对 w 排序&#xff0c;然后再来找 h 维度严格单调递增序列长度&#xff1b;在 w 排序时&#xff0c;会遇到 w(i) w(j) 的…

JWT登录

JWT JSON Web Token&#xff08;JSON Web令牌&#xff09; 是一个开放标准(rfc7519)&#xff0c;它定义了一种紧凑的、自包含的方式&#xff0c;用于在各方之间以JSON对象安全地传输信息。此信息可以验证和信任&#xff0c;因为它是数字签名的。jwt可以使用秘密〈使用HNAC算法…

Spyder安装与使用

Spyder是一个Python的集成开发环境&#xff08;IDE&#xff09;&#xff0c;由科学家、工程师和数据分析师设计。它提供了强大的编辑、调试和分析功能&#xff0c;以及数据探索和可视化工具&#xff0c;特别适合科学计算和数据分析。 Spyder的主要特点包括&#xff1a; 编辑器…

央视推荐的护眼灯是哪款?护眼灯品牌推荐

可能有些父母没有深入考虑过这样的问题&#xff1a;“台灯这东西只是照明&#xff0c;亮就可以了”、“黄光或者白光都行&#xff0c;孩子能看清书本就行”等类似的声音我也听一些朋友说过。但是科技社会带来的改变是全方位提升&#xff0c;学习台灯自然不例外。 今天就给大家分…

JAVA_EE_api_中英文对照版

点击即可下载&#xff1a; JAVA_EE_api_中英文对照版

RockChip DRM Display Driver

资料来源: 《Rockchip_DRM_Display_Driver_Development_Guide_V1.0.pdf》 《Rockchip_Developer_Guide_DRM_Display_Driver_CN.pdf》 一:DRM概述 DRM(Direct Rendering Manager)直接渲染管理,buffer分配,帧缓冲。对应userspace库位libdrm,libdrm库提供了一系列友好的…

儿童护眼台灯哪个牌子好?高端儿童护眼灯品牌推荐

科技的快速发展使我们的生活与电子设备密不可分&#xff0c;不论是学习、工作还是娱乐&#xff0c;我们都离不开这些电子产品。然而&#xff0c;长时间使用电子设备往往会引发眼睛疲劳、干涩等问题&#xff0c;因此&#xff0c;选择一款优质的护眼台灯显得尤为重要。 ①护眼台灯…

Git笔记:常用使用Git命令+使用Git关联本地仓库和远程仓库操作步骤

Git 分布式版本控制系统 常用Git命令 创建一个管理代码的文件目录右键Git Bath打开完成配置信息&#xff0c;输入个人用户名、邮件信息 git config --global user.name 用户名 git config --global user.email 邮箱地址初始化仓库 git init: 初始化仓库 文件目录里会出现一个…

Springfox Swagger3从入门案例

首先&#xff0c;在pom.xml中添加依赖&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>io…

2.依附弹窗(AttachListPopup)

愿你出走半生,归来仍是少年&#xff01; 环境&#xff1a;.NET 7 基于基础的Popup对象实现的依附于某个控件的弹窗&#xff0c;弹窗可呈现数组对象&#xff0c;达到较好的选择交互效果。 1.布局 通过Border实现圆角边框轮廓&#xff0c;然后通过内部的ListView实现列表展示。…

自动化防DDoS脚本

简介 DDoS &#xff08;分布式拒绝服务攻击&#xff09;是一种恶意的网络攻击&#xff0c;旨在通过占用目标系统的资源&#xff0c;使其无法提供正常的服务。在DDoS攻击中&#xff0c;攻击者通常控制大量的被感染的计算机或其他网络设备&#xff0c;同时将它们协调起来向目标系…

Java项目:15 springboot vue的智慧养老手表管理系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本系统共分为两个角色&#xff1a;家长&#xff0c;养老院管理员 框架&#xff1a;springboot、mybatis、vue 数据库&#xff1a;mysql 5.7&#xf…

Linux本地部署SVN服务结合内网穿透实现远程访问

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

uniapp上传音频文件到服务器

视频教程地址&#xff1a; 【uniapp录音上传组件&#xff0c;将录音上传到django服务器】 https://www.bilibili.com/video/BV1wi4y1p7FL/?share_sourcecopy_web&vd_sourcee66c0e33402a09ca7ae1f0ed3d5ecf7c uniapp 录制音频文件上传到django服务器保存到服务器 &#xf…

docker 网络及如何资源(CPU/内存/磁盘)控制

安装Docker时&#xff0c;它会自动创建三个网络&#xff0c;bridge&#xff08;创建容器默认连接到此网络&#xff09;、 none 、host docker网络模式 Host 容器与宿主机共享网络namespace&#xff0c;即容器和宿主机使用同一个IP、端口范围&#xff08;容器与宿主机或其他使…

第140期 为什么有人无脑吹分布式(20240126)

数据库管理140期 2024-01-26 第140期 为什么有人无脑吹分布式&#xff08;20240126&#xff09;1 环境2 场景3 首席补刀总结 第140期 为什么有人无脑吹分布式&#xff08;20240126&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&#xff09; Oracle ACE Associa…