pagehelper分页原理

本文介绍MyBatis分页插件PageHelper的工作原理及使用方法。PageHelper能够实现对MyBatis SQL语句的动态拼接,完成数据库的分页查询操作。通过保存前端传来的参数并利用ThreadLocal保证各线程间参数独立,最终实现高效稳定的分页功能。

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

 

    public ServerResponse<PageInfo> getProductList(int pageNum,int pageSize){
        //startPage--start
        //填充自己的sql查询逻辑

        PageHelper.startPage(pageNum,pageSize);
        List<Product> productList = productMapper.selectList();

总结:

1、PageHelper首先将前端传递的参数保存到page这个对象中

2、接着将page的副本存放入ThreadLoacl中,ThreadLocal很多地方叫做线程本地变量,为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。这样可以保证分页的时候,参数互不影响

3、PageHelper实现了mybatis提供的拦截器interceptor接口,调用其中的intercept方法,取得ThreadLocal的值

 

PageHelper在我们执行SQL语句之前动态的将SQL语句拼接了分页的语句,从而实现了从数据库中分页获取的过程。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值