PageHelper.offsetPage和PageHelper.startPage的区别
时间: 2024-12-13 15:10:39 浏览: 30
PageHelper是MyBatis的一个分页插件,提供了多种方式来实现分页功能,其中offsetPage和startPage是两种常用的方法。它们的主要区别如下:
1. **方法签名不同**:
- `PageHelper.offsetPage(int offset, int limit)`:通过偏移量和每页条数来实现分页。
- `PageHelper.startPage(int pageNum, int pageSize)`:通过页码和每页条数来实现分页。
2. **使用场景不同**:
- `offsetPage`适用于你已经知道当前页的偏移量和每页条数的情况。例如,你可能从数据库中获取了总记录数,并计算出了偏移量。
- `startPage`适用于你更习惯于使用页码和每页条数来分页的情况。这种方式更符合大多数用户的习惯。
3. **代码简洁性**:
- `startPage`通常更简洁,因为它直接对应于页码和每页条数,而不需要手动计算偏移量。
### 示例代码
**使用offsetPage**:
```java
int offset = (pageNum - 1) * pageSize;
PageHelper.offsetPage(offset, pageSize);
List<User> users = userMapper.selectAll();
```
**使用startPage**:
```java
PageHelper.startPage(pageNum, pageSize);
List<User> users = userMapper.selectAll();
```
### 总结
- `offsetPage`适用于需要手动计算偏移量的场景。
- `startPage`更简洁,适用于直接使用页码和每页条数的场景。
阅读全文