关于mybatis实现分页方式可以分为:物理分页和逻辑分页
物理分页
- SQL语句中添加limit关键字
- 基于PageHelper分页插件,实现分页
使用PageHelper,只需要在查询语句前调用PageHelper.startPage()方法,然后再进行查询操作。
PageHelper会将查询结果封装到一个PageInfo对象中,其中包含查询结果以及分页信息。
//使用PageHelper插件
PageHelper.startPage(1,20);
list<User> userList = userMapper.getUsers();
PageInfo<User> pageInfo = new PageInfo<>(userList);
逻辑分页
- 基于Mybatis-Plus实现分页
Mybatis-Plus中提供的分页插件,可实现分页功能,根据传入的参数自动计算分页信息,不用手动编写分页sql语句
public interface UserMapper extends BaseMapper<User>{
List<User> selectUserPage(Page<User> page,@Param("name") String name);
}
2.RowBounds实现分页
RowBounds是Mybatis中提供的一个分页查询工具,其中可以设置offset和limit用于分页
int offset = 20;//偏移量
int limit = 5;//每页数据条数
RowBounds rowBounds = new RowBounds(offset,limit);
List<User> userList = sqlSession.selectList("getUsers",null,rowBounds);