SpringBoot 整合 MyBatis-Plus 分页插件完整教程 SpringBoot 整合 MyBatis-Plus 分页插件完整教程一、前置说明MP 分页必须手动注册分页拦截器不配置会出现分页 total 总条数为 0、不分页的问题适配 MP 3.5 新版写法MybatisPlusInterceptor 统一插件入口废弃旧版 PaginationInterceptor支持 MySQL、Oracle 等多种数据库可指定数据库类型优化分页 SQL。二、第一步编写分页配置类新建配置包com.config创建MyBatisPlusConfig.javajava运行package com.config; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; Configuration public class MyBatisPlusConfig { /** * 注册MyBatis-Plus统一拦截器 */ Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor new MybatisPlusInterceptor(); // 分页插件 PaginationInnerInterceptor pageInterceptor new PaginationInnerInterceptor(); // 可选设置数据库类型自动适配分页语法MySQL可不写 // pageInterceptor.setDbType(DbType.MYSQL); // 可选设置单页最大条数防止恶意超大分页查询 pageInterceptor.setMaxLimit(1000L); interceptor.addInnerInterceptor(pageInterceptor); return interceptor; } }参数说明setMaxLimit(1000L)限制单次查询最多 1000 条避免LIMIT 1,100000深度分页拖垮数据库DbType.MYSQL数据库类型MP 自动生成分页语句多数据源场景建议显式指定。三、分页使用方式Service 层标准用法1. 分页对象构造PageT两个参数当前页码、每页条数java运行// 第1页每页10条 PageOrderInfo page new Page(1, 10);2. 配合 LambdaQueryWrapper 条件分页java运行Autowired private OrderInfoService orderInfoService; public PageOrderInfo getOrderPage(Integer pageNum, Integer pageSize) { // 1. 分页对象 PageOrderInfo page new Page(pageNum, pageSize); // 2. 查询条件 LambdaQueryWrapperOrderInfo wrapper new LambdaQueryWrapper(); wrapper.eq(OrderInfo::getIsDelete, 0) .orderByDesc(OrderInfo::getCreateTime); // 3. 执行分页查询 PageOrderInfo pageResult orderInfoService.page(page, wrapper); return pageResult; }3. 返回分页对象常用属性java运行// 当前页数据列表 ListOrderInfo records pageResult.getRecords(); // 总数据条数 long total pageResult.getTotal(); // 总页数 long pages pageResult.getPages(); // 当前页码 long current pageResult.getCurrent(); // 每页条数 long size pageResult.getSize();四、Mapper 层直接分页不推荐优先 Servicejava运行PageOrderInfo page new Page(1,10); LambdaQueryWrapperOrderInfo wrapper new LambdaQueryWrapper(); PageOrderInfo pageResult orderInfoMapper.selectPage(page, wrapper);五、自定义 XML 多表联查分页原生 SQL 分页兼容1. Mapper 接口java运行PageOrderVO selectOrderPage(PageOrderVO page, Param(name) String name);2. XML 不需要手写 LIMITMP 自动拼接分页语句xmlselect idselectOrderPage resultTypecom.vo.OrderVO SELECT o.*, p.product_name FROM order_info o LEFT JOIN product p ON o.product_id p.id where if testname ! null and name ! p.product_name LIKE CONCAT(%,#{name},%) /if o.is_delete 0 /where ORDER BY o.create_time DESC /select六、常见问题与解决方案问题 1分页查询 total 总条数为 0原因未配置MybatisPlusInterceptor分页插件 解决复制上方配置类确保被 Spring 扫描到加Configuration。问题 2深度分页 LIMIT 100000,10 很慢优化配置setMaxLimit限制最大单页条数大分页使用主键偏移分页替代普通分页。问题 3XML 自定义 SQL 分页失效方法第一个参数必须是PageT不要自己手写limit会重复拼接导致语法报错。问题 4分页插件与乐观锁 / 防全表更新插件共存直接叠加添加内部拦截器即可java运行interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());七、Controller 接收分页参数标准示例java运行GetMapping(/order/page) public ResultPageOrderInfo orderPage( RequestParam(defaultValue 1) Integer pageNum, RequestParam(defaultValue 10) Integer pageSize ) { PageOrderInfo pageData orderInfoService.getOrderPage(pageNum, pageSize); return Result.success(pageData); }

相关新闻

最新新闻

ptcr高级功能:并行vs串行测试模式深度对比与选择策略

ptcr高级功能:并行vs串行测试模式深度对比与选择策略

ptcr高级功能:并行vs串行测试模式深度对比与选择策略 【免费下载链接】ptcr A tool for container runtime performance measure. 项目地址: https://gitcode.com/openeuler/ptcr 前往项目官网免费下载:https://ar.openeuler.org/ar/ 容器性能测…

2026/7/11 0:55:34
国冶机电安装具备多项工程资质条件

国冶机电安装具备多项工程资质条件

机电安装工程资质。在当今工程领域,机电安装工程至关重要,而从事该工程,具备相应资质条件必不可少。机电安装工程资质是衡量企业能否承接相关项目的重要标准,下面我们来详细了解其资质条件。一、企业资产要求不同等级的机电安装资…

2026/7/11 0:55:34
3PEAK思瑞浦 T74L1G125Q-SC5R-S SOT353 缓冲器和收发器

3PEAK思瑞浦 T74L1G125Q-SC5R-S SOT353 缓冲器和收发器

特性宽电源电压范围:1.65 V至5.5 VI/O耐受输入电压达5.5 V所有输入均具有施密特触发器动作CMOS低功耗IOFF支持部分断电保护ESD保护:4 kV HBM模型,1 kV CDM模型闩锁性能超过JESD 78 II类标准的100 mA通过AEC - Q100汽车应用认证,等…

2026/7/11 0:55:34
Windows平台Btrfs驱动深度解析:架构设计与高级应用指南

Windows平台Btrfs驱动深度解析:架构设计与高级应用指南

Windows平台Btrfs驱动深度解析:架构设计与高级应用指南 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 在Windows环境中无缝访问Btrfs文件系统不再是Linux用户的专属特权。…

2026/7/11 0:55:34
OpenClaw工程化实践:从部署到人剑合一的落地指南

OpenClaw工程化实践:从部署到人剑合一的落地指南

1. 项目概述:这不是又一份“安装教程”,而是一套可落地的OpenClaw工程化实践手册OpenClaw不是玩具,它是一把需要真正握在手里、能劈开复杂任务的数字利刃。我从2023年Q4开始在生产环境里用OpenClaw跑金融研报生成、跨平台API编排和私有知识库…

2026/7/11 0:55:34
同城流量精准度优化逻辑:装修门店巨量本地推线索质量提升路径

同城流量精准度优化逻辑:装修门店巨量本地推线索质量提升路径

杭州装修门店投巨量本地推,怎么调整能快速提升精准业主线索占比?从同城流量分发的标签匹配逻辑来看,线索精准度取决于流量标签与目标客群标签的匹配程度,从定向和素材两个维度优化标签匹配效率,就能在不增加预算的前提…

2026/7/11 0:50:34

月新闻