IPage<T> 与 Page<T> 有什么区别?

✅ 一句话区别:

IPage<T> 是接口,Page<T> 是实现类。
实际开发中,一般你用 Page<T> 就够了,它是最常用的分页对象。

✅ 对比分析

对比项IPage<T>Page<T>
类型接口实现类(implements IPage<T>
用途用于参数接收或返回值接口统一抽象实际使用的分页对象
是否可实例化❌ 不可以✅ 可以:new Page<>(1, 10)
常用场景通用方法接口设计、返回类型约束99% 场景用于分页查询
包路径com.baomidou.mybatisplus.core.metadata.IPagecom.baomidou.mybatisplus.extension.plugins.pagination.Page

 ✅ 常见写法

  public IPage<User> queryGroupMembersByGroupId(Integer current, Integer size,String groupId){
        Page<User> page=new Page<>(current,size);

        if (groupId==null||groupId.isEmpty()){
            return null;
        }

        QueryWrapper<User> queryWrapper=new QueryWrapper<>();
        queryWrapper.select("id","name","avatar");
        queryWrapper.eq("deleted",false);
        queryWrapper.inSql("id", "select user_id from group_member where group_id = '"+groupId+"'");

        IPage<User> iPage=userMapper.selectPage(page,queryWrapper);
        return iPage;
    }

Page<T>IPage<T> 的标准实现类。

✅ 开发建议

场景推荐使用
方法内部使用Page<T>
方法返回类型统一IPage<T>(好处是更通用、抽象)
控制层传参分页字段Page<T> + @RequestBody 或手动封装 pagesize 字段

✅ 总结一句话:

✔ 在调用分页查询时,直接用 Page<T> 创建分页对象就好;
✔ 如果你想让方法返回更灵活、统一、规范分页结果的行为,推荐返回 IPage<T> 类型。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值