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

基于 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);}

相关文章:

  • Vxworks 系统详解
  • 装饰器在Python中的作用及在PyTorchMMDetection中的实战应用
  • 我国城市轨道交通行业人工智能大模型发布,迈向智慧化新征程​
  • 本地的ip实现https访问-OpenSSL安装+ssl正式的生成(Windows 系统)
  • Java【10_1】用户注册登录(面向过程与面向对象)
  • tomcat搭建内网论坛
  • 【论信息系统项目的资源管理】
  • docker大镜像优化实战
  • 专题三:穷举vs暴搜vs深搜vs回溯vs剪枝(全排列)决策树与递归实现详解
  • 企业如何构建安全高效的数据合规体系?
  • python使用OpenCV 库将视频拆解为帧并保存为图片
  • 问题及解决02-处理后的图像在坐标轴外显示
  • 用自写的jQuery库+Ajax实现了省市联动
  • c++STL-list的模拟实现
  • MyBatis 批量新增与删除功能完整教程
  • python_竞态条件
  • windowsC++操作ADB
  • ansible进阶版01
  • js中的同步方法及异步方法
  • Unity引擎源码-物理系统详解-其一
  • 筑牢安全防线、提升应急避难能力水平,5项国家标准发布
  • 2025年上海科技节5月17日启动,56家重点实验室和大科学设施将向公众开放
  • 牧原股份子公司与养殖户种猪买卖纠纷案一审胜诉
  • 男子退机票被收票价90%的手续费,律师:虽然合规,但显失公平
  • 冷冰川谈黑白
  • 时代中国控股:前4个月销售额18.1亿元,境外债重组协议押后聆讯至5月底