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

✅ 一句话区别:

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

✅ 对比分析

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

 ✅ 常见写法

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

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

        QueryWrapper 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 iPage=userMapper.selectPage(page,queryWrapper);
        return iPage;
    }

PageIPage 的标准实现类。

✅ 开发建议

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

✅ 总结一句话:

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

 

你可能感兴趣的:(java,前端,javascript)