PageHelper分页查询简单入门

需求分析

当数据库中数据非常多时, 需要将数据以分页的形式展示在页面上, 对于Mybatis来说可以通过主流的PageHelper分页插件简化代码

参数分析

-- 分页查询语句
SELECT * FROM table LIMIT 0,10

起始索引计算公式 : 起始索引 = (当前页码 - 1) * 每页记录数

参数 :

  1. 前端请求参数
    • 当前页码 page
    • 每页显示条数 pageSize
  2. 后端响应参数
    • 查询到的数据列表 rows (List集合)
    • 总记录数 total

通常会把响应的两个参数封装到PageBean对象中, 并以json格式响应给前端

PageHelper使用说明

  1. 使用PageHelper插件进行分页, 无需在Mapper层进行手动分页查询, 也就是说查询语句中可以省去 LIMIT

  2. 我们只需在Service层调用Mapper方法前通过PageHelper设置好分页参数, 再调用Mapper方法, 返回的就是包装好的Page对象

  3. Page对象本质上就是一个集合, 可以通过其提供的get方法获取数据

    • getTotal 获取总记录数
    • getResult 获取数据列表

准备工作

  1. pom.xml 里导入分页插件依赖
<!--PageHelper分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.2</version>
        </dependency>
  1. 创建PageBean实体类
@Data
public class PageBean {
    /**
     * 总记录数
     */
    private Long total;
    /**
     * 数据列表
     */
    private List rows;
}

代码实现

  1. Mapper层
@Mapper
public interface FindByPageMapper {
    //获取当前页的结果列表
    @Select("select * from table")
    public Page findByPage();
}
  1. Service层
/**
 * service实现类 
 */
@Service
public class FindByPageServiceImpl implements FindByPageService {
	// 注入bean对象
    @Autowired
    private FindByPageService findByPageService ;

    @Override
    public PageBean findByPage(Integer page, Integer pageSize) {
       	// 设置分页参数 (当前页码, 每页显示条数)
        PageHelper.startPage(page,pageSize);
        // 直接跟查询语句 (Page对象本质上是一个集合)
        Page pageRuesult = findByPageMapper.findByPage();
        // 包装分页结果 (获取Page对象中的total和result并存入)
        PageBean pageBean = new PageBean<>(pageRuesult.getTotal(),pageRuesult.getResult());

        return pageBean;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值