PageHelper.startPage实现分页查询
时间: 2023-03-14 16:38:22 浏览: 72
PageHelper是一个MyBatis的分页插件,它可以自动生成分页语句并执行查询,使用起来非常方便。
使用PageHelper实现分页查询的步骤如下:
1. 在项目中引入PageHelper依赖。
2. 在MyBatis的配置文件中添加PageHelper插件。
3. 在需要分页的查询方法前调用PageHelper.startPage方法,传入分页参数。
4. 紧接着执行查询方法。
5. 最后使用PageInfo对结果进行包装,并返回给调用者。
举个例子:
```java
// 在查询方法前调用PageHelper.startPage,传入分页参数
PageHelper.startPage(pageNum, pageSize);
// 执行查询
List<User> users = userMapper.selectUsers();
// 将查询结果包装成PageInfo对象
PageInfo<User> pageInfo = new PageInfo<>(users);
```
在使用PageHelper时,还可以调用其它方法来设置排序、查询条件等。具体用法可以参考PageHelper的文档或者示例代码。
相关问题
springboot中用PageHelper.startPage实现分页查询
在 Spring Boot 中,可以使用 PageHelper 插件实现分页查询。使用 PageHelper 时,需要先在 pom.xml 中添加依赖:
```
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
```
然后在需要分页的方法前调用 PageHelper.startPage 方法即可,如下所示:
```
PageHelper.startPage(pageNum, pageSize);
List<User> users = userMapper.selectAll();
```
pageNum 和 pageSize 分别表示当前页码和每页记录数。
注意,PageHelper.startPage 方法应该尽量放在最前面,因为它会对之后的查询进行拦截,从而实现分页功能。
如果需要获取分页信息,可以使用 PageInfo 类,如下所示:
```
PageInfo<User> pageInfo = new PageInfo<>(users);
```
PageInfo 对象包含了分页信息,如总记录数、总页数等。可以通过如下方式获取:
```
long total = pageInfo.getTotal();
int pages = pageInfo.getPages();
```
最后,如果要使用自定义的分页标签,可以使用如下代码:
```
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-taglib</artifactId>
<version>1.2.13</version>
</dependency>
```
然后在 JSP 页面中加入如下标签:
```
<%@ taglib prefix="page" uri="http://www.pagehelper.org/tags" %>
```
之后就可以使用 pagehel
pagehelper.startpage 释放分页资源
在使用PageHelper进行分页时,需要在查询完毕后调用PageHelper的静态方法clearPage,该方法会释放分页资源,包括清空ThreadLocal中的分页信息,避免内存泄漏和线程安全问题。示例代码如下:
```
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userDao.selectUserList();
PageInfo<User> pageInfo = new PageInfo<>(userList);
PageHelper.clearPage(); // 释放分页资源
```
建议在每个分页查询结束后都手动调用clearPage方法,以避免潜在的问题。
阅读全文