栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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(){
        
        Page  page = new Page(2,3);
        userMapper.selectPage(page,null);
    }

跟踪page源码:

可以看出当前页和每页数通过构造方法传入

3、测试

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

例如:总记录数 是否是第一页 最后一页等

源码:

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

1、QueryWrapper

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

报错:

问题:User表中的字段为:

数据库的表名为:

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

采用LambdaQueryWrapper:

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

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

如:username=null 这是万万不对的。

解决办法:再查询之前判断该属性是否为null
方法一:

可以看出没有执行like 查询

方式二:

六、实际案例

前端:



后端:

先做判断在确定是否执行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/572687.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号