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