spring-boot配置 mybatis-plus分页查询

一、mybatis-plus分页需要借助拦截器来实现

1、定义mybatis-plus分页拦截器
package com.xiaoxu.ssmp.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;

@Configuration
public class PageItercepter {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        //创建mybatis-plus拦截器
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //创建mybatis-plus内部拦截器  及具体拦截操作
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());//分页拦截器
        /**
         * 后面需要更多的拦截操作只需要按上面添加即可
         */
        return interceptor;
    }
}

2、使用

  @Test
    public void  pageQueary(){
        /**
         * 2 是当前页
         * 3是每页显示数
         * selectPage 第二个参数是查询条件
         */
        Page  page = new Page(2,3);
        userMapper.selectPage(page,null);
    }

跟踪page源码:
在这里插入图片描述
可以看出当前页和每页数通过构造方法传入

3、测试
在这里插入图片描述

二、查询返回结果中包含很对分页相关的信息

例如:总记录数 是否是第一页 最后一页等
在这里插入图片描述
源码:
在这里插入图片描述

三、条件查询时的条件封装

1、QueryWrapper

  @Test
    public void  conditionQueary1(){
        QueryWrapper<User> qw = new QueryWrapper<>();
        qw.like("username","hhh");
        userMapper.selectList(qw);
    }

报错:
在这里插入图片描述
问题:User表中的字段为:
在这里插入图片描述
数据库的表名为:
在这里插入图片描述
在这里插入图片描述

四、为了避免手写的错误情况 所以一般采用第二种条件封装方式

采用LambdaQueryWrapper:

  @Test
    public void  conditionQueary2(){
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
        lqw.like(User::getUserName,"hhh");
        userMapper.selectList(lqw);
    }

在这里插入图片描述

五、解决前端传入的时空参数问题

如:username=null 这是万万不对的。
在这里插入图片描述
解决办法:再查询之前判断该属性是否为null
方法一:
在这里插入图片描述
可以看出没有执行like 查询

方式二:
在这里插入图片描述

六、实际案例

前端:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
后端:
在这里插入图片描述
先做判断在确定是否执行。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

徐睡睡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值