【java】记录 - 创建Pageable的小工具类

本文介绍了一个实用的分页工具类PageableUtil的设计与实现,该工具类支持灵活配置分页参数,包括页数、每页条数、排序字段及排序方式等。通过简单的参数传递即可实现对数据的分页和排序操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中编写的小工具,在此做一个记录。


import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

public class PageableUtil {

    public static final String ASC_ORDER= "ASC";
    public static final String DESC_ORDER = "DESC";

    /**
     * 根据传入参数,创建排序分页器
     * @param pageNum
     * @param pageSize
     * @param sortKey 按此字段排序.eg:id/createTime等。为null时,默认按创建时间(createTime)排序
     * @param order 升序:PageableUtil.ASC_ORDER;降序:PageableUtil.DESC_ORDER。为null时,默认降序
     * @return
     */
    public static Pageable getPageable(int pageNum, int pageSize, String sortKey, String order){
        String realSortKey = "createTime";   //默认排序关键字
        if(!(StringUtils.isNullOrEmpty(sortKey))){
            realSortKey = sortKey;
        }

        Sort sort = null;
        if("DESC".equalsIgnoreCase(order)||StringUtils.isNullOrEmpty(order)){
            sort = new Sort(Sort.Direction.DESC, realSortKey);  //降序
        }else if("ASC".equalsIgnoreCase(order)){
            sort = new Sort(Sort.Direction.ASC, realSortKey);   //升序
        }else {
            sort = new Sort(Sort.Direction.DESC, realSortKey);
        }

        return PageRequest.of(pageNum,pageSize,sort);
    }


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值