.query().page(分页对象) 完整讲解

发布时间:2026/9/2 10:05:38

.query().page(分页对象) 完整讲解
.query().page(分页对象)完整讲解1.拆开整条代码PageBlogpageblogService.query().orderByDesc(liked).page(newPage(current,SystemConstants.MAX_PAGE_SIZE));拆成两步看// 第一步QueryChainWrapperBlogchainblogService.query();// 第二步 加排序条件chain.orderByDesc(liked);// 第三步 执行分页查询PageBlogpageResultchain.page(newPage(current,SystemConstants.MAX_PAGE_SIZE));2.blogService.query()返回什么blogService继承IServiceBlogdefaultQueryChainWrapperTquery(){returnnewQueryChainWrapper(this);}返回QueryChainWrapperBlog链式包装对象等价于你手动创建QueryWrapperBlogQueryWrapper基于字符串字段名写条件所以下面两句完全等价// 链式写法你现在的代码blogService.query().orderByDesc(liked).page(pageObj);// 传统写法QueryWrapperBlogwrappernewQueryWrapper();wrapper.orderByDesc(liked);blogService.page(pageObj,wrapper);.query()就是用来省去你手动 new QueryWrapper。3. QueryChainWrapper 里面的 .page() 方法方法签名链式Wrapper里面的pagepublicPageTpage(PageTpage)只接收一个参数分页Page对象为什么不需要传 wrapper因为你前面.orderByDesc()、.eq()这些条件已经存到当前这个 QueryChainWrapper 对象内部了。而 IService 的原生page需要两个参数// IService原生PageTpage(PageTpage,WrapperTqueryWrapper)本质底层执行的还是 IService 的 page 方法链式只是语法糖。4.整条调用执行流程一步一步blogService.query()// 1、 创建链式对象空条件.orderByDesc(liked)// 2、 往 wrapper 添加排序条件: order by liked desc.page(newPage(1,5));// 3、 真正访问数据库执行分页⚠️重点①、②两步不会连接数据库仅仅组装SQL条件只有调用.page()的那一刻才发送SQL去MySQL默认发出两条SQL-- count 统计总条数SELECTCOUNT(1)FROMblogORDERBYlikedDESC-- 查询当前页数据SELECT*FROMblogORDERBYlikedDESCLIMIT0,55.参数new Page(current, size)回顾newPage(current,size)newPage(current,size,isSearchCount)current页码从 1 开始size每页条数isSearchCount是否执行 count 统计总条数默认true例子new Page(2,5)第2页每页5条limit offset (2‑1)*5 5 →limit 5,56.返回结果 PagePageBlogpage......;ListBlogrecordspage.getRecords();//当前页博客数据longtotalpage.getTotal();//总条数longpagespage.getPages();//总页数7.query().page()VSlambdaQuery().page()对比// query 版本QueryWrapper字符串字段blogService.query().orderByDesc(liked).page(pageObj);// lambdaQuery版本LambdaQueryWrapper实体属性blogService.lambdaQuery().orderByDesc(Blog::getLiked).page(pageObj);唯一区别就是前面Wrapper类型不一样后面.page()完全是同一个方法、一模一样的分页逻辑。项目query().pagelambdaQuery().page条件字段写法字符串liked方法引用Blog::getLiked编译检查字段无写错运行时报错有IDEA直接飘红分页执行逻辑完全一样完全一样8.常见易错坑坑1没有配置分页插件 → .page() 失效查全部数据必须配置否则 limit 不会生效BeanpublicMybatisPlusInterceptormybatisPlusInterceptor(){MybatisPlusInterceptorinterceptornewMybatisPlusInterceptor();interceptor.addInnerInterceptor(newPaginationInnerInterceptor(DbType.MYSQL));returninterceptor;}坑2混淆两种page链式只传Pagechain.page(pageObj);IService原生两个参数blogService.page(pageObj,wrapper);不要写成// 错误: 链式里面不要再传 wrapperblogService.query().page(pageObj,wrapper);坑3直接返回Page对象给前端returnResult.ok(page);//错returnResult.ok(page.getRecords());//对返回列表9.链式常用结尾方法QueryChainWrapper都可以调用.page(pageObj)// 分页查询返回Page对象.list()// 查询所有符合条件数据List集合.one()// 查询一条数据.count()// 查询总条数返回Long

相关新闻

Python蒙特卡洛模拟实现雪球期权定价:从金融工程理论到量化实战

Python蒙特卡洛模拟实现雪球期权定价:从金融工程理论到量化实战

2026/9/2 10:05:38

简介:本资源是一套面向计算机及相关专业本科生的期权定价蒙特卡洛模拟实战代码包,专为课程设计与期末大作业打造,聚焦雪球结构产品(含保本型、东兴案例等)的暴力蒙特卡洛定价与对冲模拟。压缩包共8个Python源文件&…

零基础玩转AI:从算力token到提示词与微调的实战路径

零基础玩转AI:从算力token到提示词与微调的实战路径

2026/9/2 10:05:38

简介:一份面向中学生的AI入门课程资源包,以树莓派为硬件平台、结合百度AI开放接口,通过语音合成、动物识别、人脸识别、智能停车等趣味项目,帮助零基础读者轻松理解机器学习、神经网络等核心概念。压缩包共69个文件,以…

ZIP解压到符号库导入:EDA资源包常见报错与避坑指南

ZIP解压到符号库导入:EDA资源包常见报错与避坑指南

2026/9/2 9:55:38

简介:weee-symbol.zip 内含欧盟 WEEE 指令要求的废弃电子电气设备回收图标源文件,面向电子产品设计师、PCB Layout 工程师及合规人员,可用于产品包装、说明书和电路板丝印,解决合规符号矢量源稀缺、导入 EDA 软件困难等问题&#…

Agent技能库避坑:开发者集成AI技能的三条红线

Agent技能库避坑:开发者集成AI技能的三条红线

2026/9/2 12:35:46

Agent技能库避坑:开发者集成AI技能的三条红线 【免费下载链接】awesome-agent-skills A curated collection of 1000 agent skills from official dev teams and the community, compatible with Claude Code, Codex, Gemini CLI, Cursor, and more. 项目地址: ht…

量化参数的确定——ShrinkRange

量化参数的确定——ShrinkRange

2026/9/2 12:35:46

摘要:在执行PTQ或者QAT量化时确定FeatureMap的min,max值有很多种方式,其它方式这里不做赘述,主要介绍TI的edgevision中QAT相关实现代码使用的Percentile这种方式来确定FeatureMap的min,max,理解感悟作为记录…

MediaPipe 手部追踪迁移:Hand Landmarker 完整落地指南

MediaPipe 手部追踪迁移:Hand Landmarker 完整落地指南

2026/9/2 12:35:46

MediaPipe 手部追踪迁移:Hand Landmarker 完整落地指南 【免费下载链接】mediapipe Cross-platform, customizable ML solutions for live and streaming media. 项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe MediaPipe 手部追踪迁移&#…

【模拟电子电路-电子元器件】

【模拟电子电路-电子元器件】

2026/9/2 12:35:46

模拟电子电路-电子元器件 ■ 电路公式 ■ 01. 欧姆定律 I = U/R ■ 02. 功率计算 P(W)=U*I ■ 03. 焦耳定律 ■ 硬件名词 ■ 01 耦合 ■ 02 阻抗 ■ 001 阻抗匹配 ■ 002 特性阻抗 ■ 03 电桥 ■ 04 谐振 ■ 05 纹波 ■ 06 谐波 ■ 07 滤波电容、去耦电容、旁路电容 ■ 08 噪…

AionUi 高级设置 3 步上手:多模型接入、自定义主题与多 Agent 管理

AionUi 高级设置 3 步上手:多模型接入、自定义主题与多 Agent 管理

2026/9/2 12:35:46

AionUi 高级设置 3 步上手:多模型接入、自定义主题与多 Agent 管理 【免费下载链接】AionUi Open-source 24/7 Cowork app for OpenClaw, Hermes, Claude Code, Codex, OpenCode and 20 more CLI Agent | Customize your assistants | Team them up|Star…

机器学习----Boosting算法

机器学习----Boosting算法

2026/9/2 12:25:45

Boosting 的详细工作流程Boosting 公式详解Boosting 是一种集成学习方法,通过组合多个弱分类器构建强分类器。以下是 AdaBoost(最常用的 Boosting 算法)的核心公式及分步讲解:1. 初始化样本权重假设有 N 个样本,初始权…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/2 10:08:07

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/2 12:11:52

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/9/1 23:49:08

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

2026/9/2 0:04:59

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

2026/9/2 0:04:59

这次我们来看一个很实用的 DeepSeek 落地场景:用 DeepSeek 把英文视频字幕自动翻译成中文。具体案例是《恶魔君》1989 年第 28 集的英转中字幕任务,标题写得很直白,但背后其实是一整套可以复用的技术流程:字幕解析、模型调用、批量…

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

2026/9/2 0:04:59

当你家里摆着一台天猫精灵,却总希望语音助手偶尔“不正经”一点,不用官方腔回答问题,而是张口就接几句搞笑段子,会是什么体验?我最近动手验证了一下这个想法——没有去改装任何市面上现有的智能音箱,而是直…

远程协作的工作台整理

远程协作的工作台整理

2026/9/2 6:21:32

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/2 6:21:32

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/2 2:45:06

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…