mybatis实现分页查询
时间: 2023-09-24 18:13:09 浏览: 91
要在MyBatis中实现分页查询,可以使用`RowBounds`或`PageHelper`插件。下面我将为你介绍这两种方法。
1. 使用`RowBounds`实现分页查询:
```java
int offset = (pageNum - 1) * pageSize; // 计算偏移量
RowBounds rowBounds = new RowBounds(offset, pageSize);
List<User> userList = sqlSession.selectList("getUserList", null, rowBounds);
```
在这个例子中,我们首先计算出需要跳过的记录数(即偏移量),然后创建一个`RowBounds`对象,传入偏移量和每页记录数。最后,我们使用`selectList`方法执行查询,并传入`RowBounds`对象作为参数。
2. 使用`PageHelper`实现分页查询:
首先,确保在你的项目中引入了`PageHelper`依赖。
在MyBatis的配置文件中添加以下配置:
```xml
plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 设置合理的参数 -->
<property name="reasonable" value="true"/>
</plugin>
</plugins>
```
然后,在你的代码中使用`PageHelper.startPage()`方法来开启分页功能,并执行查询:
```java
int pageNum = 1; // 当前页码
int pageSize = 10; // 每页记录数
PageHelper.startPage(pageNum, pageSize);
List<User> userList = sqlSession.selectList("getUserList", null);
// 获取分页信息
PageInfo<User> pageInfo = new PageInfo<>(userList);
```
通过调用`PageHelper.startPage(pageNum, pageSize)`方法,你可以指定当前页码和每页记录数。然后,执行查询并获取结果列表。如果需要获取更多分页信息,你可以使用`PageInfo`对象。
这两种方法都可以实现分页查询,你可以根据自己的需求选择其中一种来使用。
阅读全文