10.分页和条件查询接口开发
目录
一、分页
1、MyBatisPlusConfig中配置分页插件
/** * 分页插件 */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); }
2、分页Controller方法
TeacherAdminController中添加分页方法
//分页查询讲师的方法 //current:当前页 limit:每页记录数 @GetMapping("pageTeacher/{current}/{limit}") public R pageListTeacher(@PathVariable long current, @PathVariable long limit) { //创建page对象 Page<EduTeacher> pageTeacher = new Page<>(current,limit); //调用方法实现分页 //调用方法时候,底层封装,把分页所有数据封装到pageTeacher对象里面 teacherService.page(pageTeacher,null); long total = pageTeacher.getTotal();//总记录数 List<EduTeacher> records = pageTeacher.getRecords();//数据list集合 //① // Map map = new HashMap<>(); // map.put("total",total); // map.put("rows",records); // return R.ok().data(map); //② return R.ok().data("total",total).data("rows",records); }
3、Swagger中测试
二、条件查询
根据讲师名称name,讲师头衔level、讲师入驻时间gmt_create(时间段)查询
1、创建查询对象
创建com.atguigu.eduservice.entity.vo包,创建TeacherQuery.java查询对象
@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、条件查询带分页的方法
//4 条件查询带分页的方法 @PostMapping("pageTeacherCondition/{current}/{limit}") public R pageTeacherCondition(@PathVariable long current, @PathVariable long limit, @RequestBody(required = false) TeacherQuery teacherQuery){ //创建page对象 Page<EduTeacher> pageTeacher = new Page<>(current,limit); //构建条件 QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>(); //多条件组合查询 //通过TeacherQuery对象传入条件值 String name = teacherQuery.getName(); Integer level = teacherQuery.getLevel(); String begin = teacherQuery.getBegin(); String end = teacherQuery.getEnd(); //判断条件值是否为空,如果不为空拼接条件 if(!StringUtils.isEmpty(name)) { //构建条件 column为数据库表中的字段名称 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); } //调用方法实现条件查询分页 pageTeacher分页对象,wrapper条件对象 teacherService.page(pageTeacher, wrapper); long total = pageTeacher.getTotal();//总记录数 List<EduTeacher> records = pageTeacher.getRecords();//数据list集合 return R.ok().data("total",total).data("rows",records); }