分页查询添加mp的分页插件

发布时间 2023-03-22 21:16:09作者: 大灰狼21

 

 

package com.itheima.reggie.config;

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 配置MP的分页插件
 */
//使用mp的分页插件简化分页功能
@Configuration
public class MybatisPlusConfig {
    //使用拦截器把插件加进去

    //让spring管理他
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //加入mp提供的拦截器
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

然后写分页查询的controller里的方法

 /**
     * 员工信息分页查询
     * @param page
     * @param pageSize
     * @param name
     * @return
     */
    //前端f12能看到请求是get,返回的page是mp提供的
    @GetMapping("/page")//page是第几页,pagesize是一页几个,name是放大镜那里输入要查的过滤条件
    public R<Page> page(int page,int pageSize,String name){
        log.info("page = {},pageSize = {},name = {}" ,page,pageSize,name);

        //构造分页构造器,有page和pagesize时
        Page pageInfo = new Page(page,pageSize);

        //构造条件构造器,有可能有name时,过滤条件,泛型不写的话,下面::会报错
        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper();
        //添加过滤条件,当name不空时添加name这个条件
        queryWrapper.like(StringUtils.isNotEmpty(name),Employee::getName,name);
        //添加排序条件,按更新时间排序
        queryWrapper.orderByDesc(Employee::getUpdateTime);

        //执行查询
        employeeService.page(pageInfo,queryWrapper);

        return R.success(pageInfo);
    }