mybatisplus分页总是查到全部数据?

54 篇文章 2 订阅
20 篇文章 0 订阅

这是因为版本的问题,在3.4.1及以上需要配置过滤器以实现分页
分页代码–>

 @Test
    void contextLoads6() {
        Page<Dept> pageB= new Page<Dept>(2,2);//可以通过构造方法直接指定分页情况
        System.out.println(pageB.getSize());//2
        System.out.println(pageB.getCurrent());//2
        System.out.println(pageB.getTotal());//0
        //  page.setSize(2); //可通过方法设置属性
        Page<Dept> page = deptService.page(pageB);
        System.out.println(page.getSize());//2
        System.out.println(page.getCurrent());//2
        System.out.println(page.getTotal());//0
        List<Dept> list = page.getRecords();
//        list.forEach(System.out::println);
        for (Dept dept : list) {
            System.out.println(dept);
        }
        System.out.println("---------------");
        Map<String ,Object> map=  new HashMap<>();
        map.put("deptno",60);
        Page< Map<String ,Object>> page1=new Page<>(2,2);
        Page<Map<String, Object>> mapPage = deptService.pageMaps(page1);
        mapPage.getRecords().forEach(System.out::println);

    }

未配置过滤器,会查询到全部数据,并不做limit处理
在这里插入图片描述

配置过滤器----
mybatisplus 3.4.1

@Configuration
@MapperScan("com.gavin.mapper")
public class MyInterceptorConfig {


      @Bean
       public PaginationInterceptor paginationInterceptor() {
           PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
           // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
           // paginationInterceptor.setOverflow(false);
           // 设置最大单页限制数量,默认 500 条,-1 不受限制
           // paginationInterceptor.setLimit(500);
           // 开启 count 的 join 优化,只针对部分 left join
           paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
           return paginationInterceptor;
       }
       }

mybatisplus 3.5.1

package com.gavin.Config;

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

/**
 * @author Gavin
 */
@Configuration
@MapperScan("com.gavin.mapper")
public class MyInterceptorConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }

}

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
根据提供的引用内容,可以看出问题出现在代码中的分页查询部分。在引用\[1\]中的代码配置中,使用了MybatisPlusInterceptor来添加分页拦截器,并指定了数据库类型为MYSQL。而在引用\[2\]和引用\[3\]中的代码中,分别使用了Mybatis Plus的selectPage和page方法进行分页查询。 根据引用\[2\]中的代码,可以看出在查询全部员工数据时,传入的current和pageSize参数是正确的。但是,可能由于分页拦截器的配置或其他原因,导致分页查询失败,返回了全部数据。 为了解决这个问题,可以尝试以下几个步骤: 1. 确保MybatisPlusInterceptor的配置正确,并且已经成功添加到了MybatisPlus的配置中。 2. 检查数据库连接是否正常,以及数据库类型是否与分页拦截器配置的一致。 3. 检查分页查询的方法是否正确使用了分页参数,并且传入的参数值是正确的。 4. 如果以上步骤都没有解决问题,可以尝试使用其他的分页插件或方法进行分页查询,或者查看Mybatis Plus的文档和社区来获取更多的帮助和解决方案。 综上所述,分页查询失败返回全部数据的问题可能是由于分页拦截器配置或其他原因导致的。需要仔细检查配置和代码,并尝试解决问题。 #### 引用[.reference_title] - *1* *2* [使用Mybatis-Plus分页查询总是返回全部数据(已解决)](https://blog.csdn.net/weixin_45514133/article/details/128856127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [springboot+mybatisplus分页实现](https://blog.csdn.net/qq_46110710/article/details/126813471)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CodeMartain

祝:生活蒸蒸日上!

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

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

打赏作者

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

抵扣说明:

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

余额充值