MyBatis-Plus如何分页查询?

ops/2024/10/19 10:35:32/

MyBatis-Plus提供了一种简单而强大的分页查询功能,可以通过使用Page对象和Mapper接口中的方法来实现。以下是分页查询的基本步骤:

添加分页插件依赖

确保你的项目中已经添加了MyBatis-Plus的分页插件依赖。

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>合适的版本号</version>
</dependency>

配置分页插件

在你的配置类中添加分页插件的配置。

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;@Configuration
public class MybatisPlusConfig {@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}
}

创建Page对象

在你的服务层或控制器层,创建一个Page<T>对象,其中T是你要查询的实体类类型。

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;// 第1页,每页10条数据。
Page<User> page = new Page<>(1, 10);

调用分页查询方法

如果需要自定义查询条件,可以创建一个QueryWrapper<T>对象,并在其中设置条件。

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::delFlag, 0);// 然后将其作为 selectPage 方法的第二个参数传入
Page<User> userPage = userMapper.selectPage(page, queryWrapper);

获取分页结果

selectPage方法会返回一个IPage<T>对象,其中包含了分页结果和分页信息。

// 获取分页数据列表
List<User> users = userPage.getRecords();// 获取当前页码
int current = userPage.getCurrent();// 获取总记录数
int totalRecords = userPage.getTotal();// 获取总页数
int pages = userPage.getPages();// 获取每页数量
int size = userPage.getSize();

MyBatis-Plus的分页插件会自动处理SQL的LIMIT部分,你只需要关注于传递正确的参数和处理结果。分页插件还提供了对前端分页信息的支持,如totalPagespageSizetotalRecords等。


http://www.ppmy.cn/ops/121921.html

相关文章

RabbitMQ学习笔记

RabbitMQ学习笔记 简介RabbitMQ基础架构RabbitMQ的6种工作模式: RabbitMQ基本使用简单模式(一个生产者对应一个消费者)消息生产端消息消费端 work queues模式(一个生产者对应多个消费者)Publish/Subscribe 发布与订阅模式(通过exchange分发消息)消息生产端消息消费端 Routing路…

Microsoft AI部门的CEO额备忘录

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Oracle控制文件全部丢失如何使用RMAN智能恢复?

1.手动删除所有控制文件模拟故障产生 2.此时启动数据库发现控制文件丢失 3.登录rman 4.列出故障 list failure; 5.让RMAN列举恢复建议 advise failure; 6.使用RMAN智能修复 repair failure;

Oracle 数据库安装和配置详解

Oracle 数据库安装和配置详解 Oracle 数据库是一款功能强大、广泛使用的企业级关系数据库管理系统 (RDBMS)&#xff0c;适用于处理大型数据库和复杂事务。本文将介绍如何在 Linux 和 Windows 环境下安装 Oracle 数据库&#xff0c;并对其进行基本配置&#xff0c;帮助开发者快…

day03 笔试练习

1.简写单词 题目链接&#xff1a;简写单词_牛客题霸_牛客网 public static void main(String[] args) {Scanner sc new Scanner(System.in);while(sc.hasNext()){ // 输入多少读入多少char ch sc.next().charAt(0); // 提取首字母if(ch > a && ch < z){System…

Linux多线程

目录 背景知识 重谈地址空间​编辑 理解代码划分数据的本质 线程的概念和Linux中线程的实现 什么是线程 线程的优点 线程的缺点 线程异常 线程用途 澄清并统一进程与线程 见见线程 背景知识 重谈地址空间 理解代码划分数据的本质 虚拟地址本质是一种资源&#xf…

八、特殊类型异常机制

特殊类型&异常机制 数据类型枚举类型匿名类、单例类和伴生对象匿名类单例类伴生对象 委托模式密封类型异常机制异常的使用异常的处理 数据类型 对于那些只需要保存数据的类型&#xff0c;我们常常需要为其重写toString、equals等函数&#xff0c;针对于这种情况下&#xf…

【自定义网络协议】Java基于Vert.x的自定义TCP协议实现

在现代的软件开发中&#xff0c;TCP协议广泛应用于需要高效、低延迟数据传输的场景。相较于HTTP协议&#xff0c;TCP提供了更底层的控制和更高的性能&#xff0c;适用于嵌入式设备、实时数据传输等应用。Vert.x是一个基于事件驱动、异步和多线程的高效开发框架&#xff0c;特别…