赞
踩
配置Mybatis-Plus分页插件
基本分页功能实现
@GetMapping("pageTeacher/{current}/{limit}") // 路径传值 pageTeacher/1/15
public R pageListTeacher(@PathVariable long current,
@PathVariable long limit) { // current当前页,limit每页记录数
Page<EduTeacher> pageTeacher = new Page<>(current, limit);
teacherService.page(pageTeacher, null); // 调用方法时候,底层封装,把分页所有数据封装到pageTeacher对象里面
long total = pageTeacher.getTotal(); // 总记录数
List<EduTeacher> records = pageTeacher.getRecords(); // 数据list集合
return R.ok().data("total",total).data("rows",records); // 链式编程
}
多条件组合查询带分页功能实现
(1)建vo类,写上属性,用于数据的封装,创建包com.atguigu.eduservice.entity.vo,在vo里创建类TeacherQuery
@Data
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)功能实现,暂时先写到controller中,service:业务逻辑层,更建议放这里
@PostMapping("pageTeacherCondition/{current}/{limit}") public R pageTeacherCondition(@PathVariable long current, @PathVariable long limit, @RequestBody(required = false) TeacherQuery teacherQuery) { // 查询条件用对象做封装 Page<EduTeacher> pageTeacher = new Page<>(current, limit); QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>(); // 拼接条件 String name = teacherQuery.getName(); Integer level = teacherQuery.getLevel(); String begin = teacherQuery.getBegin(); String end = teacherQuery.getEnd(); if (!StringUtils.isEmpty(name)) { // 条件值可能有也可能没有 wrapper.like("name", name); } if (!StringUtils.isEmpty(level)) { wrapper.eq("level", level); } if (!StringUtils.isEmpty(begin)) { wrapper.ge("gmt_create", begin); // 大于等于 } if (!StringUtils.isEmpty(end)) { wrapper.le("gmt_create", end); // 小于等于 } wrapper.orderByDesc("gmt_create"); //排序 teacherService.page(pageTeacher, wrapper); // 把查询到的数据封装到pageTeacher对象里面 long total = pageTeacher.getTotal(); List<EduTeacher> records = pageTeacher.getRecords(); return R.ok().data("total",total).data("rows",records); }
(3)@RequestBody和@ResponseBody
@ResponseBody 返回json数据
@RequestBody(required = false) TeacherQuery teacherQuery
使用json格式传递数据,把json数据封装到对应对象里面,提交方式需要是post,required = false表示参数值可以为空
teacherQuery参数格式:application/json
{
"begin": "2019-01-01 10:10:10",
"end": "2019-12-01 10:10:10",
"level": 0,
"name": "string"
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。