解决mybatis-plus分页查询不生效,配置分页拦截器

解决mybatis-plus分页查询不生效,配置分页拦截器

1、问题描述

今天在使用mybatis-plus的分页查询的时候,发现分页效果并没有实现,一次性将表的全部数据都加载了出来,最后查看官方文档发现是自己没有配置分页拦截器。
我的mybatisplus版本如下:
在这里插入图片描述

2、解决方案:

写一个配置类将分页拦截器注入 由于我的@MapperSacn注解加在SpringBoot启动类上面了,所以这里我就没再加。

package com.baomidou.mybatisplus.config;

import com.baomidou.mybatisplus.annotation.DbType;
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 MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor=new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

3、测试

  Page<Employee> employeePage = employeeMapper.selectPage(new Page<>(3, 2), null);
        List<Employee> employeeList = employeePage.getRecords();
        employeeList.forEach(System.out::println);

在这里插入图片描述
可以通过日志看出limit关键字生效了。

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
Mybatis分页拦截器可以实现基于数据库的分页,避免将所有数据取出来再进行内存分页,提高性能。下面是配置Mybatis分页拦截器的步骤: 1. 添加依赖 在pom.xml文件中添加Mybatis分页插件的依赖: ``` <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</version> </dependency> ``` 2. 配置拦截器Mybatis配置文件中(mybatis-config.xml)配置拦截器: ``` <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <property name="dialect" value="mysql"/> <property name="reasonable" value="true"/> <property name="supportMethodsArguments" value="true"/> <property name="params" value="pageNum=page;pageSize=limit;"/> </plugin> </plugins> ``` 其中,dialect属性表示数据库方言,reasonable属性表示是否合理化分页(即当请求页码小于1或大于总页数时,是否返回第一页或最后一页),supportMethodsArguments属性表示支持通过mapper接口参数来传递分页参数,params属性表示传递给拦截器的参数名映射(即将pageNum和pageSize参数映射为page和limit)。 3. 使用分页插件 在Mapper接口中定义查询方法时,使用PageHelper.startPage()方法开启分页,并返回PageInfo对象,如下所示: ``` public interface UserMapper { List<User> selectAllUsers(); } PageHelper.startPage(pageNum, pageSize); List<User> userList = userMapper.selectAllUsers(); PageInfo<User> pageInfo = new PageInfo<>(userList); ``` 其中,pageNum表示请求的页码,pageSize表示每页的数据条数,userList为查询结果列表,pageInfo为分页信息对象。 这样就完成了Mybatis分页拦截器配置和使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

别团等shy哥发育

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

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

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

打赏作者

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

抵扣说明:

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

余额充值