当前位置: 首页 > news >正文

spring boot使用mybatis-plus实现分页功能

使用 MyBatis-Plus 实现分页功能

MyBatis-Plus 提供了内置的分页插件,可以轻松实现分页查询功能。以下是实现分页的具体方法:

配置分页插件

在 Spring Boot 项目中,需要在配置类中注册分页插件:

@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}

使用分页查询

在 Service 层或 Controller 层中,可以通过 Page 对象实现分页查询:

// 创建分页对象,参数为当前页码和每页显示数量
Page<User> page = new Page<>(1, 10);// 调用 MyBatis-Plus 提供的分页查询方法
Page<User> userPage = userMapper.selectPage(page, null);// 获取分页数据
List<User> users = userPage.getRecords();
long total = userPage.getTotal();

自定义分页查询

如果需要自定义分页查询 SQL,可以使用 MyBatis-Plus 的 IPage 接口:

@Select("SELECT * FROM user WHERE age > #{age}")
IPage<User> selectByAge(IPage<User> page, @Param("age") Integer age);

调用方法:

Page<User> page = new Page<>(1, 10);
IPage<User> userPage = userMapper.selectByAge(page, 18);

前端分页参数传递

前端通常需要传递当前页码和每页大小,后端可以通过参数接收:

@GetMapping("/users")
public PageResult<User> getUsers(@RequestParam(defaultValue = "1") Integer current,@RequestParam(defaultValue = "10") Integer size) {Page<User> page = new Page<>(current, size);Page<User> result = userService.page(page);return new PageResult<>(result.getRecords(), result.getTotal());
}

注意事项

  • 分页插件会自动拦截带有 IPage 参数的方法,并生成分页 SQL。
  • 数据库类型需正确配置,如 DbType.MYSQLDbType.ORACLE
  • 如果使用 XML 文件编写 SQL,需确保 SQL 语句可以被分页插件优化。
http://www.dtcms.com/a/271149.html

相关文章:

  • C++学习笔记三
  • MATLAB基于voronoi生成三维圆柱形
  • Token 和 Embedding的关系
  • 基于AOP+Redis的简易滑动窗口限流
  • C#基础篇(10)集合类之列表
  • 列表页智能解析算法:大规模数据采集的核心引擎
  • 2024-2025-2 山东大学《编译原理与技术》期末(回忆版)
  • 【ARM嵌入式汇编基础】- 操作系统基础(二)
  • JSP数据交互
  • php绘图添加水印,文字使用imagick库的操作
  • Docker 高级管理-容器通信技术与数据持久化
  • C语言结构体对齐
  • SpringCloud系列 - xxl-job 分布式任务调度 (七)
  • 链表和数组和列表的区别
  • 力扣网编程150题:加油站(贪心解法)
  • Origin将Y偏移图升级为双Y轴3D瀑布图
  • SAP-ABAP:SAP中‘SELECT...WHERE...IN’语句IN的用法详解
  • 想要抢早期筹码?FourMeme专区批量交易教学
  • Cadence模块复用
  • SQL 视图与事务知识点详解及练习题
  • 基于Spring Boot+Vue的巴彦淖尔旅游网站(AI问答、腾讯地图API、WebSocket及时通讯、支付宝沙盒支付)
  • 等价矩阵和等价向量组
  • JavaScript基础篇——第五章 对象(最终篇)
  • 深度学习模型在C++平台的部署
  • 优化 FLUX.1 Kontext 以进行低精度量化的图像编辑
  • Flowable17错误事件---------------持续更新中
  • ali linux 安装libreoffice
  • Linux 系统 docker 部署 Dify
  • Airtest 的 Poco 框架中,offspring()
  • 【网络】Linux 内核优化实战 - net.ipv4.tcp_ecn