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

接口分析

接口

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来进行筛选条件

相关推荐
RainCity5 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
LinXunFeng12 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
通信小呆呆16 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick16 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee16 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8616 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e16 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨16 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
闪闪发亮的小星星16 天前
高斯光以及高斯光公式解释
笔记
cqbzcsq17 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息