目录
什么是pageHelper
pageHelper会使用ThreadLocal获取到同一线程中的变量信息,各个线程之间的Threadlocal不会相互干扰,也就是Thread1中的ThreadLocal1之后获取到Tread1中的变量的信息,不会获取到Thread2中的信息
所以在多线程环境下,各个Threadlocal之间相互隔离,可以实现,不同thread使用不同的数据源或不同的Thread中执行不同的SQL语句
所以,PageHelper利用这一点通过拦截器获取到同一线程中的预编译好的SQL语句之后将SQL语句包装成具有分页功能的SQL语句,并将其再次赋值给下一步操作,所以实际执行的SQL语句就是有了分页功能的SQL语句
MyBatis分页插件-PageHelper的配置与应用
pom.xml 引入依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
在Mybatis的配置文件 Mybatis-Config.xml中配置PageHelper插件
<!--PageHelper分页插件-->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
params=value1
</value>
</property>
</bean>
</array>
</property>
一、pageHelper使用?
//开启分页
PageHelper.startPage(page,limit);
List<Emp> list= empMapper.selectAll();
//存储数据到pageInfo内
PageInfo pageInfo=new PageInfo(list);
//提取想要的数据
return new TableView(pageInfo.getTotal(),pageInfo.getList());
注意:PageHelper只对紧跟着的第一个SQL语句起作用。所以若一个方法中涉及到多个查询,需要小心,避免为不需要分页的添加了分页,而真正需要分页的却没有被分页。
二、pageInfo的方法

本文介绍了PageHelper,一个MyBatis的高效分页插件,它利用ThreadLocal实现线程间数据隔离。通过在Mybatis的配置文件中引入PageHelper并设置参数,可以轻松实现分页功能。在使用PageHelper时,只需调用startPage方法开启分页,然后执行查询,最后使用PageInfo封装结果并返回所需数据。注意PageHelper仅对第一个SQL语句生效,确保正确应用在需要分页的方法中。
1004





