苍穹外卖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 里面去好了接下来的 我懒得写了