学习笔记-菜品接口-菜品分页查询

接口分析

接口

get请求:负责查询数据

/page:对应表示分页查询入口

请求参数

categoryId(分类id)------可选 作用:按分类筛选菜品列表

name(菜品名称)------可选 作用:按菜品名称模糊查询

page(页码)------必需 作用:第几页,从 1 开始

pageSize(每页记录数)------必需 作用:每页返回多少条数据

status(分类状态/菜品状态)

返回响应

1️⃣ code(必需):表示业务状态码

2️⃣ msg:对应的提示信息内容

3️⃣ data:对应的返回的分页数据内容

total:总记录数

records:当前页数据

代码开发

分页DTO对象设计

分页VO对象设计

DIshController

把前端的分页查询请求转换为后端可执行的查询,并返回统一结构

@GetMapping("/page")

HTTP GET 请求映射到这个方法

方法签名:Result<PageResult> page(DishPageQueryDTO dishPageQueryDTO)

返回值:Result<PageResult> ------"统一响应结构"

PageResult ------"分页数据结构"

total:总条数

records:当前页数据列表

形参: DishPageQueryDTO dishPageQueryDTO

Spring MVC 会把 URL 里的 Query 参数自动绑定到 DTO 里同名字段:

  • page=1 → dto.page = 1

  • pageSize=10 → dto.pageSize = 10

  • name=鸡dto.name = "鸡"

  • categoryId=101 → dto.categoryId = 101

  • status=1 → dto.status = 1

调用 Service:dishService.pageQuery(dishPageQueryDTO)

复制代码
调用service其中函数方法返回对应的数据并进行统一封装进行成功响应

DishService&DishServiceImpl其中内容

形参接受对应的DTO对象,后续来返回分页对象PageResult

service负责对应把"分页条件"变成真正的数据库分页查询,并返回前端需要的 total + records

实现类其中来具体实现

方法签名,对应返回PageResult,其中包括对应的total总条数&records当前页数数据列表信息

形参接受对应的DishPageQuertDTO对象

因为分页查询不仅有 page/pageSize,还可能有:

  • name(菜品名模糊)

  • categoryId(分类)

  • status(起售/停售)

PageHelper.startPage(...):分页的"开关"

对应告诉PageHelper,接下来我们需要来执行select 查询"要做分页拦截

它会把分页信息(page、pageSize)放进一个 ThreadLocal 里,然后等待后面 Mapper 执行 SQL 时拦截。

Mapper

id="pageQuery" 必须和 Mapper 接口方法名一致

resultType="com.sky.vo.DishVO" 表示这条 SQL 查出来的每一行结果,MyBatis 要映射成 DishVO 对象

select d.*, c.name as categoryName : 查询菜品其中的所有字段信息以及对应的分类名称

  • 主表:dish(菜品)

  • 关联表:category(分类)

  • 通过 category_id 拿到分类名称

通过<where>+if来进行筛选条件

相关推荐
swan4162 小时前
SCAU期末笔记 - 计算机网络雨课堂习题整理
arm开发·笔记·计算机网络
丝斯20112 小时前
AI学习笔记整理(44)——大规模预训练模型数据处理管道Pipeline
人工智能·笔记·学习
自不量力的A同学2 小时前
Dragonfly v2.4.0 发布
笔记
知识分享小能手3 小时前
Oracle 19c入门学习教程,从入门到精通, —— 知识点详解(1)
数据库·学习·oracle
代码游侠3 小时前
学习笔记——51单片机学习
笔记·stm32·单片机·嵌入式硬件·51单片机
山土成旧客3 小时前
【Python学习打卡-Day42】打开深度学习“黑箱”:从Hook回调到Grad-CAM可视化
python·深度学习·学习
星火开发设计3 小时前
C++ stack 全面解析与实战指南
java·数据结构·c++·学习·rpc··知识
冉冰学姐3 小时前
SSM校园学习空间预约系统w314l(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·学习·ssm 框架·校园学习空间预约系统·师生双角色
小当家.1054 小时前
从零构建项目认知:如何画出一张合格的系统架构图(以供应链系统为例)
java·spring boot·学习·架构·系统架构·供应链·实习