MyCat - 商品管理 - 根据条件分页查询 SPU 列表 | 学习笔记

简介: 快速学习 MyCat - 商品管理 - 根据条件分页查询 SPU 列表

开发者学堂课程【全面讲解开源数据库中间件 MyCat 使用及原理(四):MyCat - 商品管理 - 根据条件分页查询 SPU 列表 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/758/detail/13315


MyCat - 商品管理 - 根据条件分页查询 SPU 列表

内容介绍:

一、前言

二、演示

 

一、前言

本节继续讲解商品模块需求中的第二个需求:根据条件查询商品 SPu 列表。

先来看有哪些条件,下图为项目原型图。

image.png

根据条件查询商品首先是商品名称去模糊查询,然后根据副标题查询,然后是品牌、审核状态。

其中商品查询和副标题是模糊查询,而品牌和审核状态属于精确查询。

 

二、演示

步骤1、定义 Mapper 接口

在代码 SPUMapper.java 中:

/**

*

*根据 ID 查询 SPU 信息

*@param spuid

*@return

*/

public TbSpu findById(String spuid);

然后在第二方面生成一个代码

由于查询返回的是一个列表,在输入 public 后,再生成 List<TbSpu> 和方法serach(),

传递条件采用 Map <String,String> searchMap

即输入

public List<TbSpu> serach(Map <String,String> searchMap);

以上条件查询方法已经完成,可以添加注释条件查询:

/**

*条件查询

*@param searchMap

*@return

*/

声明好条件查询方法之后,在 SpuMapper.xml 中需要编写对应的映射配置文件写入 sql 语句,方法名与 ID 对应

<select id="search" resultMap="spuMap">

</select>

然后再来编写对应的 sql 语句,该 sql 语句需要查询 spu 信息,所以在<select id="search" resultMap="spuMap">下输入select*from tb_spu

但是查询需要条件,在项目原型图中,输入条件,点击查询就可以进行查询 select的 SPU 的商品信息,如果只选了一个条件,根据该条件过滤,两个条件根据两个条件过滤,假如没有选择条件,那就是全部查询。

若是需要全部实现,则需要用到动态 sql 完成查询。

如下:

<where>

<if test="name != null and name != ‘’">

and name like '%$ {name}% '

</if>

<if test="caption != null and caption != ‘’">

and caption like ' %${caption}% '

</if>

<if test="brandId != null">

and brand_id = # { brandId}

</if>

<if test="status !=nul1 and status != "'">

and status =#{status}

</if>

</ where>

分别以 spu 的名称、副标题、品牌 ID、状态来进行查询。

步骤2、建立 Service 接口

在这层需要编写一个接口 public  page(返回值:是由 pagehelper 所提供,因为需要分页,所以我们能使用到 pagehelper 分页插件来进行分页)方法名依旧是Map。

public Page search(Map<string,String>searchMap)

除了 Map 传递的条件外,还需要传递别的信息,即输入

public Page search(Map<string,String>searchMap,Integer page,Integer size);

并在上方注释“根据条件进行查询 spu 列表”

/**

*根据条件分页查询spu列表

*@param searchMap

*@param page

**/

步骤3、编制 SpuServicelmpl

设置分页查询的参数

//设置分页查询参数

PageHelper.startPage(page,size);

之后再调用 spuMapper 中的 search 方法

List<TbSpu> spulist=spuMapper.search(searchMap);

将 searchMap 传递过去后返回的是一个 list,list 实际类型是一个 page,所以输入return (Page)spuList;

步骤4、编制 SpuController

首先编制一个方法 public Result findPage(Map<String, String searchMap)

其中,searchMap 是当中的查询条件

之后,在此基础上在编制 Integer 类型的 page 和 Integer 类型的 size 如下:

public Result findPage(Map<String,String> searchMap,Integer page,Integer size)

传递参数之前需要在此基础的上方再编制 PostMapping 并赋予 value 值“/search/{page}/{size}-]”

并在此基础上再加上注解,

@Pathvariable("page")Integer page,@Pathvariable(”size”)Integer size){

这样分页参数即可传递

SearchMap 传递:由于使用的是 cost 请求,实际上就想让{Map<String,String>searchMap参数转化成另一种格式,则在代码 Map 前添加注解 RequestBody,

public Result findPage(RequestBody Map<String,String>searchMap,

并调用 spuservice 中的方法 search 并传递 searchMap,page,size 之后会传递一个结果 pageResult

Page pageResult=spuservice. search(searchMap, page, size);

之后开始解析 page 内容:

1、通过 pageResult 调用方法 getTotal 可以拿到总记录数

(long total=pageResult. getTotal();)

2、再调用 pageResult 中的方法 getResult 即可拿到结果

既然是分页查询,就需要把结果封装到分页对象当中,如图所示:(找到分页对象)

依次是v_parent v_common src main java

cn.itcastentity pageResult

pageResult文档当中有两个参数第一个total(总记录数),第二个rows(结果列表)

private Long total;//总记录数

private List<T> rows//记录数

并在下方封装对象 new pageResult,利用此对象时,其中可以传递两项参数,第一项就是总记录数 total,第二项就是结果列表 Result, 之后就会返回一个pageResult,接下来直接返回上一个结果,输入代码 return new Reault(flag:true,Statuacode.ok,message:“查询成功",pageResult1)即可完成。

相关文章
|
SQL 前端开发 JavaScript
eggjs 怎么实现获取账单列表接口并且实现列表数据分页查询功能?
eggjs 怎么实现获取账单列表接口并且实现列表数据分页查询功能?
196 0
eggjs 怎么实现获取账单列表接口并且实现列表数据分页查询功能?
|
6月前
|
SQL Java 数据库连接
大事件后端项目28------文章分类列表查询(条件分页)
大事件后端项目28------文章分类列表查询(条件分页)
|
Java
jpa实现增删改查,分页,自定义查询,jpql查询
jpa实现增删改查,分页,自定义查询,jpql查询
90 0
|
7月前
|
XML Java 数据库连接
【MyBtis】各种查询功能
【MyBtis】各种查询功能
103 0
|
7月前
|
JavaScript Java
若依框架 --- 主表和明细表批量添加
若依框架 --- 主表和明细表批量添加
200 0
|
SQL PHP
【ThinkPHP】like同一个字段多个条件查询
【ThinkPHP】like同一个字段多个条件查询
663 0
【ThinkPHP】like同一个字段多个条件查询
|
Java Spring
spring boot CRUD(查询全部,查询ID,模糊查询,删除id,全部删除,新增多条/单条 修改)(二)
spring boot CRUD(查询全部,查询ID,模糊查询,删除id,全部删除,新增多条/单条 修改)(二)
120 0
|
SQL Java 数据库
spring boot CRUD(查询全部,查询ID,模糊查询,删除id,全部删除,新增多条/单条 修改)(一)
spring boot CRUD(查询全部,查询ID,模糊查询,删除id,全部删除,新增多条/单条 修改)(一)
223 0
|
JSON 中间件 数据库
MyCat - 商品管理 - 根据 ID 查询 SPU | 学习笔记
快速学习 MyCat - 商品管理 - 根据 ID 查询 SPU
MyCat - 商品管理 - 根据 ID 查询 SPU | 学习笔记
|
JSON Java 中间件
MyCat - 商品管理 - 根据 ID 查询 SKU 信息 | 学习笔记
快速学习 MyCat - 商品管理 - 根据 ID 查询 SKU 信息
MyCat - 商品管理 - 根据 ID 查询 SKU 信息 | 学习笔记