PageHelper原理
时间: 2023-11-21 21:13:48 浏览: 119
PageHelper是一个常用的用于在持久层使用mybatis进行后台分页的工具。它使用了ThreadLocal来保存分页参数,确保分页参数和线程绑定。具体来说,PageHelper的原理是通过startPage方法来开启分页功能。这个静态方法接受参数包括页码(pageNum)、每页显示数量(pageSize)、是否进行count查询(count)、分页合理化(reasonable)和是否返回全部结果(pageSizeZero)等。在方法内部,它创建了一个Page对象,并设置了相应的参数。同时,如果之前已经执行过orderBy操作,startPage方法会将之前的orderBy信息复制到新的Page对象中。最后,startPage方法将新的Page对象保存到ThreadLocal中。这样,在MyBatis查询方法中,PageHelper会根据ThreadLocal中保存的Page对象来进行分页处理。需要注意的是,为了确保安全,我们需要确保在PageHelper的startPage方法调用后紧跟着MyBatis的查询方法。此外,PageHelper还在finally代码段中自动清除了ThreadLocal存储的对象,以防止内存泄漏问题的发生。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [分页插件PageHelper工作原理](https://blog.csdn.net/fedorafrog/article/details/104412140)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文