pagehelper插件效率低(PageHelper分页插件)
pagehelper插件效率低(PageHelper分页插件)<!-- 3. 配置SqlSessionFactory 对象 -->https://pagehelper.github.io/docs/ <version>5.1.4</version></dependency>文档:
PageHelper分页插件 pom.xml 文件中添加 PageHelper 依赖包<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.4</version>
</dependency>
文档:
https://pagehelper.github.io/docs/
在Spring 配置文件中,配置拦截器插件<!-- 3. 配置SqlSessionFactory 对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource" />
<!-- 扫描sql配置文件:mapper 需要的xml 文件 -->
<property name="mapperLocations" value="classpath:mapper/*.xml" />
<!-- 配置分页插件 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
helpDialect=mysql
reasonable=true
</value>
</property>
</bean>
</array>
</property>
</bean>
项目中使用方法和结果在配置完mybatis后,我简单的说下pagehelper的业务用法,就以分页查询用户列表为例。
添加查询所以用户的mapper接口,对应的sql语句我就不写了。
List<UserVo> listUser();
重点来了,然后在service中,先开启分页,然后把查询结果集放入PageInfo中:
public PageInfo listUserByPage(int pageNum int pageSize) {
PageHelper.startPage(pageNum pageSize);
List<UserVo> userVoList=userMapper.listUser();
PageInfo pageInfo=new PageInfo(userVoList);
return pageInfo;
}
PageHelper.startPage(pageNum pageSize);这句非常重要,这段代码表示分页的开始,意思是从第pageNum页开始,每页显示pageSize条记录。
PageInfo这个类是插件里的类,这个类里面的属性会在输出结果中显示,使用PageInfo这个类,你需要将查询出来的list放进去。
PageInfo这个类里面的属性:pageNum 当前页
pageSize 每页的数量
size 当前页的数量
orderBy 排序
startRow 当前页面第一个元素在数据库中的行号
endRow 当前页面最后一个元素在数据库中的行号
total 总记录数(在这里也就是查询到的用户总数)
pages 总页数
list 结果集
prePage 前一页
nextPage 下一页
isFirstPage 是否为第一页
isLastPage 是否为最后一页
hasPreviousPage 是否有前一页
hasNextPage 是否有下一页
navigatePages 导航页码数
navigatepageNums 所有导航页号
navigateFirstPage 导航第一页
navigateLastPage 导航最后一页
firstPage 第一页
lastPage 最后一页