发布时间:2026/7/12 4:57:21
苍穹外卖day13 自己写 菜品批量删除controllerDeleteMapping ApiOperation(菜品删除) public Result delete(String ids){ log.info(菜品删除{}, ids); dishService.delete(ids); return Result.success(); }问题:RequestParam从URL 参数中取值例如?ids1,2,3加上这个 spring才能知道把前端传来的请求参数放进ids这个变量里ids只能单个删除 要传入多个参数 需要使用列表泛型ListLong ids 传入一个参数 里面包含多个需要删除的东西 spring 会自动分开2改调用方法只用变量名 不要类型日志也是---------------------------------------------------------------------------------------------------------------------------------开始srvice层接口void delete(ListLong ids); }具体实现public void delete(ListLong ids) { for(Long id : ids){ } }能力有限 只能写这么些了提示想一想。你只有一个id。id 1你知道这个菜品的信息吗不知道。所以是不是应该根据id查询菜品。于是你需要Mapper有一个方法。例如Dish getById(Long id);那么Service里面就是Dish dish dishMapper.getById(id);自己总结一下此时只有一个id 当然需要了解这个id下的菜品状态所以需要调用mapper层来完成涉及多次数据库操作的业务通常都会加上Transactional 事务小错误纠正 变量引用指向了一个对象接口声明了一个方法但没有具体实现DishMapper管的是 Dish表现在查的是这个菜品有没有出现在套餐里面这其实查的是SetmealDish表所以 新创建俩文件 注入不要忘记Mapper然后 补充一个知识点现在用Autowired private SetmealDishMapper setmealDishMapper;能工作。但是现在Spring Boot更推荐private final SetmealDishMapper setmealDishMapper; public DishServiceImpl(SetmealDishMapper setmealDishMapper){ this.setmealDishMapper setmealDishMapper; }叫构造器注入。然后 接着删除现在根据 count的数量进行删除决定如果count1 不能删除要抛异常0可以删除关于 java异常机制的补充抛异常和return一个报错有什么区别Service接口原本是什么void delete(ListLong ids); 这个方法不返回任何东西但是你现在return Result.error();你返回了一个Result。直接类型冲突。那你改成public Result delete(ListLong ids)可以吗技术上可以。但是架构上不好。为什么Controller应该负责返回Result它负责HTTP响应应该是什么格式。但是Service负责什么Service负责业务能不能执行。它不应该关心HTTP状态码JSON格式Result对象那Service怎么告诉Controller失败这就是异常。你可能之前以为throw是不是指定扔给某个地方不是。throw的意思只是当前方法无法处理这个问题把异常交给调用我的人。至于最后谁处理取决于调用链。这里的调用者是contorller所以当然也就抛给了contorller比如DeleteMapping public Result delete(){ dishService.delete(ids); return Result.success(); }没有try{ }catch(Exception e){ }怎么办Spring接管。Spring MVC有一个机制全局异常处理器。剩下的mapper和sql就先不研究了---------------------------------------------------------------------------------------------------------------------------------现在开始修改菜品踩到的坑查询不用事务多表修改需要查什么表 返回什么数据类型list表示多条记录 而不是多个字段通常用在分页查询了解。。。。 联表查询一对一的关系 可以使用 可以减少查找数据库的次数喵~Mapper 从来都不是返回数据库表而是返回 SQL 映射出来的 Java 对象。一个重点 怎么把 flavors补充到dishvo 里面去好了接下来的 我懒得写了

相关新闻

2026/7/12 4:57:21

杰森·白:“动漫IP”是企业的灵魂与伴侣

动漫IP是企业品牌精神、文化内核的具象载体,优质IP凭借人格力、内容力、适配力三大核心特质,能把企业的理念、温度转化为大众可感知的形象,成为品牌区别于其他竞品的核心标识。‌动漫IP会伴随企业全生命周期成长,可通过跨媒介衍生…

2026/7/12 4:57:21

Twitter数据导出实战指南:三步实现完整社交媒体数据备份

Twitter数据导出实战指南:三步实现完整社交媒体数据备份 【免费下载链接】twitter-web-exporter Export tweets, bookmarks, lists and much more from Twitter(X) web app. (推文/书签/收藏/列表导出工具) 项目地址: https://gitcode.com/gh_mirrors/tw/twitter-…

2026/7/12 6:02:25

Godot4零基础实战:2D横版动作游戏开发全流程解析

1. 项目概述:从笔记到实战的跨越如果你和我一样,是从零开始接触Godot4,那么你很可能已经看了一大堆教程,记了满屏的笔记,但关上教程的那一刻,脑子里依然是一片空白,不知道如何下手做一个属于自己…

2026/7/12 6:02:25

UE5集成3D高斯泼溅:从原理到实战的实时渲染指南

1. 项目概述:当UE5遇上3D高斯泼溅最近在数字孪生和实时渲染的圈子里,3D高斯泼溅(3D Gaussian Splatting,简称3DGS)的热度一直没降下来。它不像传统的Mesh重建那样依赖复杂的几何拓扑,而是用一堆带属性的“点…

2026/7/12 6:02:25

Python集合模块的8个活性学习洞见:从行为边界到生产避坑

1. 项目概述:这不是“Python集合模块”的入门课,而是8个被90%开发者忽略的活性学习洞见你有没有在写Python代码时,突然卡在这样一个问题上:为什么用set()去重后顺序乱了,但换成dict.fromkeys()却能保序?或者…

2026/7/12 6:02:25

BetterNCM-Installer:网易云音乐插件生态的一键解决方案

BetterNCM-Installer:网易云音乐插件生态的一键解决方案 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 在传统的网易云音乐插件安装过程中,用户常常需要面对繁…

2026/7/12 5:57:24

工控协议安全分析:Modbus TCP 模糊测试工具开发与3类漏洞挖掘

工控协议安全实战:基于Python的Modbus TCP模糊测试工具开发与漏洞挖掘工业控制系统(ICS)作为国家关键基础设施的核心组成部分,其安全性直接关系到生产运营的连续性和社会稳定性。在众多工控协议中,Modbus TCP因其简单易…

2026/7/12 0:01:29

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/12 0:01:29

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/12 0:01:29

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/12 0:01:29

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/12 0:01:29

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/12 0:01:29

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/11 8:37:53

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…