后台讲师管理模块-条件查询(1) | 学习笔记

简介: 快速学习后台讲师管理模块-条件查询(1)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)后台讲师管理模块-条件查询(1)学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11289


后台讲师管理模块-条件查询(1)


内容简介:

一、多条件组合查询带分页功能

二、怎样做多条件组合查询带分页功能


一、多条件组合查询带分页功能

1.怎样做分页功能?

首先画一个页面效果,假设在页面里有一个讲师数据列表,则列表就可以做一个分页。

分页一般在数据的最下面会有一个分页条,分页条一般有如下结构:

首页 上一页 1 2 3 下一页 尾页。

2.什么叫多条件查询?

根据条件做查询,一般在页面的上面会有输入条件的部分,例如:讲师名称、讲师级别、讲师入驻的开始时间、讲师入驻的结束时间,且这些条件可以选择和输入,在条件的后面也会有一个查询按钮,所以这是一个简单的页面效果,然而怎样做页面效果?

例如:输入一个姓张的讲师名称,查询姓张的所有讲师。或者在级别中输入高级,则就可以查出姓张的高级讲师。

以及讲师入驻的开始时间2019-1-1和讲师入驻的结束时间2019-1-31,点击查询,就可以利用这些条件,查出对应的讲师数据。多条件数据做到分页效果就称为多条件查询。

3.什么叫组合?

只查名称,没有级别和时间;只查名称和级别,没有时间;只查名称和开始时间,;

只查开始和结束时间,不查名称和级别。这些条件,都是不同的组合情况,称为多条件组合查询,然而在多条件组合查询的基础上,会加上分页这就是我们要做的多条件组合查询带分页功能。


二、怎样做多条件组合查询带分页功能

1.第一步:把条件值传递到接口里面(把条件值封装到对象里面,把对象vo传递到接口里面)

在代码 entity 中,建立 vo,在 vo 里创建一个类 TeacherQuery,让这个类TeacherQuery 用于封装条件。

(1)创建以后,根据条件在里面建立属性,用名称、级别、开始时间、结束时间创建四个属性做封装。例如:

@Date

public class TeacherQuery {

@ApiModelProperty(value = "教师名称,模糊查询" )

private String name;

@ApiModelProperty(value = "头衔1高级讲师2首席讲师" )

private Integer level;

@ApiModelProperty(value = "查询开始时间" , example =  "2019-01-01 10: 10:10")

private String begin; //注意,这里使用的是 String类型,前端传过来的数据无需进行类型转换

@ApiModelProperty(value = "查询结束时间" , example = "2019-12 -01 10:10:10")

private String end;

(2)条件查询带分页的方法:

@GetMapping( "pageTeacherCondition/{current)/(limit)" )public R pageTeacherCondition (@PathVariable long current, @PathVariable long 1imit,

TeacherQuery teacherQuery) }

//创建 page 对象

Page<EduTeacher> pageTeacher = new Page<> (current, limit) :

//构建条件

QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>() :

//多条件组合查询

//mybatis学过 动态sql

String name = teacherQuery. get.Name() :

Integer level = teacherQuery. getLevel() :

String begin = teacherQuery. getBegin() :

String end = teacherQuery. getEnd() :

//判断条件值是否为空,如果不为空拼接条件

if(!StringUtils. isEmpty(name))  {

//构建条件

wrapper. like( column: "name" , name) :

}

if(!StringUtils. isEmpty(1evel))  {

wrapper. eq(column: "level ", level) :

}

if(!StringUtils. isEmpty(begin))  {

wrapper. ge( column: "gmt_ create' , begin) :

}

if(!StringUtils. isEmpty(end))  {

wrapper. le( column: "gmt_ create" , end) :

}

//调用方法实现条件查询分页

teacherService. page (pageTeacher, wrapper) :

long total = pageTeacher. getTotal() : //总记录数

List<EduTeacher> records = pageTeacher. getRecords() : //数据list集合return R. ok(). data( "total" , total). data( "rows" , records):

}

2.第二步:根据条件值进行判断,拼接条件

String name = teacherQuery. get.Name() :

Integer level = teacherQuery. getLevel() :

String begin = teacherQuery. getBegin() :

String end = teacherQuery. getEnd() :

//判断条件值是否为空,如果不为空拼接条件

if(!StringUtils. isEmpty(name))  {

//构建条件

wrapper. like( column: "name" , name) :

}

if(!StringUtils. isEmpty(1evel))  {

wrapper. eq(column: "level ", level) :

}

if(!StringUtils. isEmpty(begin))  {

wrapper. ge( column: "gmt_ create' , begin) :

}

if(!StringUtils. isEmpty(end))  {

wrapper. le( column: "gmt_ create" , end) :

}

  1. ResponseBody 的作用用于返回数据,返回 json 数据
  2. RequestBody 使用 json传递数据,把 json 数据封装到对应对象里面,若使用RequestBody,则需要使用 post 提交方式,@RequestBody (required = false) TeacherQuery teacherQuery表示参数值可以为空。
  3. 条件查询带分页的方法

@PostMapping ( "pageTeacherCondition/ {current}/{limit} ")public R pageTeacherCondition(PathVariable long current, PathVariable long limit,

@RequestBody (required = false) TeacherQuery teacherQuery)

相关文章
|
2月前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
开发者 微服务
后台讲师管理模块-分页查询 | 学习笔记
快速学习后台讲师管理模块-分页查询
|
JSON 数据格式 开发者
后台讲师管理模块-讲师删除 | 学习笔记
快速学习后台讲师管理模块-讲师删除
后台讲师管理模块-讲师删除 | 学习笔记
|
前端开发 数据库 网络架构
讲师分页查询接口 | 学习笔记
快速学习讲师分页查询接口
讲师分页查询接口 | 学习笔记
|
存储 前端开发 JavaScript
课程管理-修改课程信息(前端) | 学习笔记
简介:快速学习课程管理-修改课程信息(前端)
课程管理-修改课程信息(前端) | 学习笔记
|
JSON 前端开发 JavaScript
课程管理-修改课程信息(前端)| 学习笔记
简介:快速学习课程管理-修改课程信息(前端)
258 0
课程管理-修改课程信息(前端)| 学习笔记
|
前端开发 数据库 开发者
课程管理-修改课程信息(后端) | 学习笔记
简介:快速学习课程管理-修改课程信息(后端)
134 0
课程管理-修改课程信息(后端) | 学习笔记
|
存储 Java 对象存储
讲师管理-上传讲师头像(后端接口实现) | 学习笔记
快速学习讲师管理-上传讲师头像(后端接口实现)
讲师管理-上传讲师头像(后端接口实现) | 学习笔记
|
存储 前端开发 JavaScript
课程管理-修改课程信息(最终实现) | 学习笔记
简介:快速学习课程管理-修改课程信息(最终实现)
208 0
课程管理-修改课程信息(最终实现) | 学习笔记
|
前端开发 JavaScript API
课程详情功能前端整合 | 学习笔记
简介:快速学习课程详情功能前端整合
课程详情功能前端整合 | 学习笔记
下一篇
无影云桌面