一、讲师分页功能
1.添加分页插件
/** * 分页插件 */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); }
2.添加代码
//3.分页查询 //{current}:当前页/{limit}每页内容" @GetMapping("PageFind/{current}/{limit}") public R pageList(@PathVariable long current, @PathVariable long limit){ Page<EduTeacher> page=new Page<>(current,limit); eduTeacherService.page(page,null); long total=page.getTotal(); List<EduTeacher> records=page.getRecords(); return R.OK().data("total",total).data("records",records); }
测试成功
二、多条件组合查询功能
首先书写controller,用的wrapper实现条件查询
//4.多条件查询带分页 @PostMapping("PageFindCondition/{current}/{limit}") public R pageListCondition(@PathVariable long current, @PathVariable long limit, @RequestBody(required = false) TeacherQuery teacherQuery){ Page<EduTeacher> page=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_modified",end); } eduTeacherService.page(page,wrapper); long total=page.getTotal(); List<EduTeacher> records=page.getRecords(); return R.OK().data("total",total).data("records",records); }
这里需要注意一些问题,
@RequestBody(required = false) TeacherQuery teacherQuery
可以看到我们再自封装的这个实体类中加上了一个注解
@RequestBody
这个注解的目的主要是使用json传递数据,把json数据封装到对应对象里,required意思是是否值允许为空
但是一旦用了这个注解就需要用post方式提交,所以我们需要更改注解。
@PostMapping("PageFindCondition/{current}/{limit}")