Mybatis提供了两种方法来实现分页查询:
在Mapper方法中添加一个RowBounds参数,用于指定查询的偏移量和限制数量。
在SQL语句中使用LIMIT
关键字来指定查询的偏移量和限制数量。
在查询结果中,只会返回指定偏移量和数量的数据。
例如:
// Mapper接口方法
List<User> getUsers(@Param("offset") int offset, @Param("limit") int limit);
// Mapper XML配置文件
<select id="getUsers" resultType="User">
SELECT * FROM users
LIMIT #{offset}, #{limit}
</select>
// 调用Mapper方法
List<User> users = userDao.getUsers(0, 10); // 查询偏移量为0,限制数量为10的数据
在项目中引入PageHelper插件的依赖。
在Mapper接口方法上使用PageHelper.startPage()方法来开启分页查询,并传入页码和每页显示数量。
执行Mapper方法后,PageHelper会自动将查询结果封装成Page对象,其中包含了分页相关的信息。
例如:
// 引入PageHelper插件的依赖
// 在Mapper接口方法中使用PageHelper.startPage()方法
List<User> getUsers(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);
// 调用Mapper方法
PageHelper.startPage(1, 10); // 查询第1页,每页显示10条数据
List<User> users = userDao.getUsers(1, 10);
// 获取分页相关信息
PageInfo<User> pageInfo = new PageInfo<>(users);
int total = pageInfo.getTotal(); // 获取总记录数
以上两种方法都可以实现分页查询,具体选择哪种方法取决于你的需求和项目情况。