当前位置: 首页 > java >正文

基于 Spring Boot 瑞吉外卖系统开发(十三)

基于 Spring Boot 瑞吉外卖系统开发(十三)

查询套餐

在这里插入图片描述
在这里插入图片描述
在查询套餐信息时包含套餐的分类名,分类名称在category表中,因此这里需要进行两表关联查询。
自定义SQL如下:

select s.* ,c.`name` as category_name from setmeal s
left join  category c on c.id=s.category_id

在这里插入图片描述

创建SetmealDto文件

用来存储和传输套餐数据对象

@Data
public class SetmealDto extends Setmeal {private String categoryName;
}

创建SetmealMapper.xml配置文件

配置自定义SQL

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.reggie.mapper.SetmealMapper"><select id="selectSetmealDtoPage" resultType="com.itheima.reggie.dto.SetmealDto">select s.* ,c.`name` as category_name from setmeal sleft join  category c on c.id=s.category_id</select></mapper>

SetmealMapper添加id接口方法

@Mapper
public interface SetmealMapper extends BaseMapper<Setmeal> {public Page<SetmealDto> selectSetmealDtoPage(Page page);}

SetmealService和SetmealServiceImpl添加对应调用方法


public interface SetmealService extends IService<Setmeal> {public Page<SetmealDto> selectSetmealDtoPage(Page page);
}
@Service
public class SetmealServiceImpl extends ServiceImpl<SetmealMapper, Setmeal> implements SetmealService {@Autowiredprivate SetmealMapper setmealMapper;@Overridepublic Page<SetmealDto> selectSetmealDtoPage(Page page) {return setmealMapper.selectSetmealDtoPage(page);}
}

SetmealController类中添加分页查询套餐的方法

@RestController
@RequestMapping("/setmeal")
public class SetmealController {@Autowiredprivate SetmealService setmealService;@GetMapping("/page")public R<Page<SetmealDto>> page(int page, int pageSize){Page pageInfo = new Page(page,pageSize);setmealService.selectSetmealDtoPage(pageInfo);return R.success(pageInfo);}}

运行测试

套餐所有属性正常显示。
在这里插入图片描述

自定义SQL模糊查询

搜索框输入套餐名称查询。
在这里插入图片描述

自定义SQL语句添加查询条件

    <select id="selectSetmealDtoPage" resultType="com.itheima.reggie.dto.SetmealDto">select s.* ,c.`name` as category_name from setmeal sleft join  category c on c.id=s.category_id<if test="name!=null">where   s.name like #{name}</if></select>

添加套餐名称参数

@Mapper
public interface SetmealMapper extends BaseMapper<Setmeal> {public Page<SetmealDto> selectSetmealDtoPage(Page page,@Param("name") String name);}

修改controller方法,接收查询套餐名称参数。

    @GetMapping("/page")public R<Page<SetmealDto>> page(int page, int pageSize,String name){Page pageInfo = new Page(page,pageSize);setmealService.selectSetmealDtoPage(pageInfo,"%"+name+"%");return R.success(pageInfo);}
http://www.xdnf.cn/news/5910.html

相关文章:

  • SpringBoot中的拦截器
  • 精简大语言模型:用于定制语言模型的自适应知识蒸馏
  • RobotxR1:通过闭环强化学习在大语言模型上实现具身机器人智能
  • 【Web应用】Vue 项目前端项目文件夹和文件介绍
  • 17.责任链模式:思考与解读
  • Mysql索引优化
  • State(状态)——对象行为型模式
  • 在scala中sparkSQL读入csv文件
  • 【AI提示词】贝叶斯分析专家
  • C语言编程--二叉树--构建解析树
  • iOS - 如何从appStore获取app版本信息
  • 各类芒果(果实、叶片、产量等)相关数据集
  • Python爬虫实战:研究JavaScript 环境补全逆向解密
  • SQLMesh信号机制详解:如何精准控制模型评估时机
  • CSS可以继承的样式汇总
  • 【言语】刷题3
  • 串口模块详细讲解
  • IO、存储、硬盘、文件系统相关常识
  • 【Bluedroid】蓝牙 HID DEVICE 初始化流程源码解析
  • 十天学会嵌入式技术之51单片机—day-9
  • 【技巧】使用UV创建python项目的开发环境
  • 面试篇:Spring Security
  • C语言—再学习(数据的存储类别)
  • C++ 字符格式化输出
  • python学习笔记七(文件)
  • 分布式链路跟踪
  • lubuntu 系统详解
  • WebpackVite总结篇与进阶
  • Java SpringMVC 和 MyBatis 整合项目的事务管理配置详解
  • DeepSeek 赋能汽车全生态:从产品到服务的智能化跃迁