分页工具类

介绍

方法 convertToIPage 用于将一个 List 转换为 IPage,并在方法内部计算总数和总页数。该方法利用了 MyBatis-Plus 框架提供的 IPage 接口,并采用泛型 <T>,使其能够兼容任意类型的数据。

package com.util;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

public class PageUtils {
   

    /**
     * 转换为分页
     *
     * @param page 分页参数
     * @param list 数据列表
     * @param <T>  任意类型
     * @return IPage 分页对象
     */
    public static <T> IPage<T> convertToIPage(Page<T> page, List<T> list) {
   

        // 获取数据列表总数
        int total = list.size();
        // 获取当前页码
        long current = page.getCurrent();
        // 获取每页显示的数据条数
        long size = page.getSize();
        // 计算总页数
        long pages = (long) Math.ceil((double) total / size);
        // 计算当前页的起始索引
        int startIndex = (int) ((current - 1) * size);
        // 计算当前页的结束索引
        int endIndex = Math.min((int) (current * size), total);
        // 截取对应页的数据
        List<T> records = list.subList(startIndex, endIndex);

        // 创建 IPage 对象并设置相关属性
        IPage<T> iPage = new Page<>();
        iPage.setRecords(records);
        iPage.setTotal(total);
        iPage.setSize(size);
        iPage.setCurrent(page.getCurrent());
        iPage.setPages(pages);

        return iPage;
    }

}

相关推荐

  1. 工具

    2024-02-21 02:12:01       51 阅读
  2. springboot查询

    2024-02-21 02:12:01       57 阅读
  3. django--功能

    2024-02-21 02:12:01       58 阅读
  4. Django

    2024-02-21 02:12:01       72 阅读
  5. Python

    2024-02-21 02:12:01       53 阅读
  6. uniapp

    2024-02-21 02:12:01       60 阅读
  7. Mybatis

    2024-02-21 02:12:01       50 阅读
  8. MySQL 深度

    2024-02-21 02:12:01       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-21 02:12:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-21 02:12:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-21 02:12:01       87 阅读
  4. Python语言-面向对象

    2024-02-21 02:12:01       96 阅读

热门阅读

  1. 1. A. Did We Get Everything Covered?(构造、思维)

    2024-02-21 02:12:01       51 阅读
  2. iocp简单例子

    2024-02-21 02:12:01       53 阅读
  3. Kubernetes 100个常用命令!

    2024-02-21 02:12:01       51 阅读
  4. 数组排序(C语言)

    2024-02-21 02:12:01       53 阅读
  5. 发NLP方向顶会这24个研究方向可以卷

    2024-02-21 02:12:01       45 阅读
  6. neo4j常用代码

    2024-02-21 02:12:01       68 阅读
  7. C# 中的回调函数

    2024-02-21 02:12:01       43 阅读
  8. qt中读写锁与互斥锁的区别

    2024-02-21 02:12:01       56 阅读