分页工具类

介绍

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

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   任意类型
     * @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;
    }

}

你可能感兴趣的:(java,mybatis)