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) 的…

C语言中的const修饰符:如何使用和理解它

C语言是一种非常强大和灵活的编程语言&#xff0c;它可以直接访问和操作底层的硬件和系统资源&#xff0c;从而实现高效和精确的程序控制。但是&#xff0c;C语言也有一些限制和缺陷&#xff0c;如类型检查不严格、变量作用域不明确、指针操作不安全等。这些问题会导致C语言的代…

JWT登录

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

【spdk】spdk compressdev测试

spdk-23.09\go\rpc\README.md go client 启应用 启哪个应用&#xff1f; ./build/bin/iscsi_tgt --wait-for-rpc & /usr/local/daos-2.4/prereq/release/spdk/share/spdk/scripts/rpc.py bdev_malloc_create -b Malloc0 1024 4096 #1G bs4k /usr/local/daos-2.4/prereq…

多路摄像头的ONVIF协议兼容

选择摄像头时&#xff0c;应当优先选择支持通用开放标准的摄像头&#xff0c;如ONVIF&#xff08;Open Network Video Interface Forum&#xff09;标准。ONVIF是一个开放的行业标准&#xff0c;旨在促进IP安全性设备的互操作性。 简介 ONVIF&#xff08;Open Network Video …

Spring Boot整合Swagger2

Spring Boot整合Swagger2 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将一起探讨如何在Spring Boot项目中整合Swagger2&#xff0c;一个强大…

Spyder安装与使用

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

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

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

TS基本类型的响应式数据

ref 创建&#xff1a;基本类型的响应式数据 作用&#xff1a;定义响应式变量。 语法&#xff1a;let xxx ref(初始值)。 返回值&#xff1a;一个RefImpl的实例对象&#xff0c;简称ref对象或ref&#xff0c;ref对象的value属性是响应式的。 注意点&#xff1a; JS中操作数据…

JAVA_EE_api_中英文对照版

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

内网环境横向移动——如何防范

黑客横向移动的手段已经非常成熟。除了病毒中的自动化横向移动模块&#xff0c;目前也已经有许多横向移动的工具被广泛使用。因此&#xff0c;对横向移动的防护是目前内网安全防护中的重中之重。其核心目标是&#xff0c;即使黑客进入企业内网&#xff0c;也能通过一系列防护手…

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库提供了一系列友好的…

vue3使用特殊字符@、~代替路径src

在vite.config.js中引入 import { resolve } from pathexport default defineConfig({resolve:{alias:{~:resolve(__dirname,src)}} })vue3使用特殊字符、~代替路径src_vue3 ~/-CSDN博客

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

科技的快速发展使我们的生活与电子设备密不可分&#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…