当前位置: 首页 > article >正文

MyBatisPlus 使用 IPage 分页

3.4.0之前版本
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        paginationInterceptor.setLimit(-1);
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }

3.4.0之后版本
package com.zsatc.server.pim.bootstrap.config;

import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Slf4j
@Configuration
public class MybatisPlusConfig {

    // 3.4.0 版本之后的分页配置方法
    @Bean
    public MybatisPlusInterceptor paginationInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //分页拦截器
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();

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

    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return i -> i.setObjectWrapperFactory(new MybatisMapWrapperFactory());
    }

    @Bean
    public IdentifierGenerator idGenerator() {
        return new CustomIdGenerator();
    }

    // 获取long类型的id,雪花算法
    private static final Snowflake SNOWFLAKE = IdUtil.getSnowflake(1, 1);

    public class CustomIdGenerator implements IdentifierGenerator {
        @Override
        public Long nextId(Object entity) {
            return SNOWFLAKE.nextId(); // BaseUtil.getNextId();
        }
    }

}

草稿版,待有空再完善该文章

MyBatisPlus如何实现对查询结果分页?_mybatis plus page-CSDN博客

Mybatis-plus原生pages分页未生效的解决方案_java_脚本之家


http://www.kler.cn/a/308981.html

相关文章:

  • jmeter常用配置元件介绍总结之定时器
  • DOM 规范 — MutationObserver 接口
  • 28.医院管理系统(基于springboot和vue)
  • 深度学习之 LSTM
  • Linux相关习题-gcc-gdb-冯诺依曼
  • vue elementui el-dropdown-item设置@click无效的解决方案
  • 神经网络-MNIST数据集训练
  • 回归预测|基于鲸鱼WOA优化最小二乘支持向量机数据回归预测模型Matlab程序 含基础LSSVM程序 有对比 WOA-LSSVM
  • 深度学习计算
  • 【笔记】二维DP
  • 浅谈C#之AutoResetEvent和ManualResetEvent
  • 【HTML】Html标签
  • Redis 入门 - 收官
  • 一款.NET开源的i茅台自动预约小助手
  • Python热频随机森林分类器算法模型模拟
  • mac系统安装最新(截止2024.9.13)Oracle JDK操作记录
  • C++速通LeetCode简单第10题-翻转二叉树
  • Flink难点和高阶面试题:Flink的状态管理机制如何保证数据处理的准确性和完整性
  • 一步到位:通过 Docker Compose 部署 EFK 进行 Docker 日志采集
  • FastAPI--如何自定义Docs UI,包括多个APP、静态资源、元数据等
  • kotlin的密封类
  • springboot+redis+缓存
  • 二十种编程语言庆祝中秋节
  • CesiumJS+SuperMap3D.js混用实现通视分析
  • SprinBoot+Vue基于推荐算法的智能书店的设计与实现
  • 车载软件架构 --- SOA设计与应用(下)