springboot+vue——7

1.配置mybatis分页插件

在配置类中配置分页插件
在这里插入图片描述

/**
 * 分页插件
 */
@Bean
public PaginationInterceptor paginationInterceptor() {
    return new PaginationInterceptor();
}

2.controller层编写分页查询方法

2.1先创建page对象(mybatis plus的)
有两个参数page(当前页)和limit(该页有几条数据),

Page<EduTeacher> pageParam = new Page<>(page, limit);

2.2查询分页数据
page()方法也是已经封装好的方法,直接调用就行,第一个参数为上边定义的page对象,第二个为查询条件,没有条件为null

eduTeacherService.page(pageParam, null);

2.3获取总记录数和某页的所有数据集合

        List<EduTeacher> records = pageParam.getRecords();//当前页的数据集合
        long total = pageParam.getTotal();//总记录数

2.4完整代码

//分页查询方法
    @ApiOperation(value = "分页讲师列表")
    @GetMapping("{page}/{limit}")
    public R pageList(
            @ApiParam(name = "page", value = "当前页码", required = true)
            @PathVariable Long page,

            @ApiParam(name = "limit", value = "每页记录数", required = true)
            @PathVariable Long limit){

        Page<EduTeacher> pageParam = new Page<>(page, limit);

        eduTeacherService.page(pageParam, null);
        List<EduTeacher> records = pageParam.getRecords();
        long total = pageParam.getTotal();

        return  R.ok().data("total", total).data("rows", records);
    }

3.实现条件查询分页功能

3.1理清思路
把条件传给对象,通过对象传给后端接口。
该课程是把条件重新封装成了一个对象。
根据条件创建条件类。
3.2创建条件类
在这里插入图片描述

@ApiModel(value = "Teacher查询对象", description = "讲师查询对象封装")
@Data
public class TeacherQuery  {

    private static final long serialVersionUID = 1L;

    @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;
}

3.3controller编写分页方法
3.3.1第三个参数为条件对象

 @GetMapping("pageTeacherCondition/{current}/{limit}")
    public R pageTeacherCondition(@PathVariable long current, @PathVariable long limit, TeacherQuery teacherQuery){

3.3.2创建page对象

Page<EduTeacher> pageParam = new Page<>(page, limit);

3.3.3创建QueryWrapper,用来设置条件

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

3.3.4判断条件是否为空
获得对象的值

        String name = teacherQuery.getName();
        String begin = teacherQuery.getBegin();
        String end = teacherQuery.getEnd();
        Integer level = teacherQuery.getLevel();

如果为空直接查询无条件,如果不为空添加条件进行查询。

StringUtils.isNullOrEmpty()

一个判dao断字符串是否du为空引用或者zhi值为空的方法。
能够判断dao一个String字符串是否是百空回引用(null),或值为空(empty),功能相当于string.IsNull()和string.Trim().Length总和。

        if(!StringUtils.isNullOrEmpty(name)){
            wrapper.like("name",name);
        }

like()方法表示模糊查询,第一个参数是数据库中的表的列名,后边为条件值。
剩下三个方法类似。

        if(!StringUtils.isNullOrEmpty(name)){
            wrapper.like("name",name);//模糊查询
        }
        if(level!=null){
            wrapper.eq("level", level);//等于
        }
        if(!StringUtils.isNullOrEmpty(begin)){
            wrapper.ge("gmt_create", begin);//大于等于
        }
        if(!StringUtils.isNullOrEmpty(end)){
            wrapper.le("gmt_create", end);//小于等于
        }

完整方法

 //条件分页查询
    @GetMapping("pageTeacherCondition/{current}/{limit}")
    public R pageTeacherCondition(@PathVariable long current, @PathVariable long limit,  TeacherQuery teacherQuery){
        Page<EduTeacher> pageParam = new Page<>(current, limit);
        String name = teacherQuery.getName();
        String begin = teacherQuery.getBegin();
        String end = teacherQuery.getEnd();
        Integer level = teacherQuery.getLevel();
        //创建querywapper
        QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>();
        if(!StringUtils.isNullOrEmpty(name)){
            wrapper.like("name",name);
        }
        if(level!=null){
            wrapper.eq("level", level);
        }
        if(!StringUtils.isNullOrEmpty(begin)){
            wrapper.ge("gmt_create", begin);
        }
        if(!StringUtils.isNullOrEmpty(end)){
            wrapper.le("gmt_create", end);
        }


        eduTeacherService.page(pageParam,wrapper);
        List<EduTeacher> records = pageParam.getRecords();
        long total = pageParam.getTotal();
        return  R.ok().data("total", total).data("rows", records);
    }

测试方法
在这里插入图片描述
在这里插入图片描述
@RequestBody(required = false)
该注解是把参数以json类型传输
使用该注解需要使用@PostMapping

(required = false)
表示参数可以为空

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我柒月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值