mybatis 实现从第几行开始分页查询
时间: 2023-09-18 21:03:11 浏览: 51
MyBatis可以通过设置`RowBounds`对象来实现从第几行开始的分页查询。`RowBounds`是一个包含了起始行和返回行数量的对象,可以通过在查询语句中设置`RowBounds`对象来指定查询的起始行和返回行数。
首先,需要在Mapper接口中定义一个带有`RowBounds`参数的方法,该方法用于分页查询数据。例如:
```java
List<User> getUsersByPage(RowBounds rowBounds);
```
然后,在Mapper XML文件中编写对应的SQL语句,可以使用`limit`关键字来指定返回的行数。在这个例子中,我们还需要使用MyBatis提供的`offset`函数来指定起始行的偏移量。示例如下:
```xml
<select id="getUsersByPage" resultType="com.example.User">
SELECT * FROM user
LIMIT #{rowBounds.limit} OFFSET #{rowBounds.offset}
</select>
```
最后,在Java代码中调用Mapper方法时,创建一个`RowBounds`对象并设置起始行和返回行数,然后将其作为参数传递给方法。示例如下:
```java
int pageNum = 2; // 从第2页开始
int pageSize = 10; // 每页显示10条数据
int offset = (pageNum - 1) * pageSize; // 计算起始行的偏移量
RowBounds rowBounds = new RowBounds(offset, pageSize);
List<User> userList = userMapper.getUsersByPage(rowBounds);
```
这样就能实现从第几行开始的分页查询了。在上述示例中,设置的起始行为第2页,每页显示10条数据。