分页插件PageHelper:
MyBatis没有分页功能,需要手动编写LIMIT语句,可以使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据
PageInfo:
PageInfo常用方法:
方法 | 说明 |
---|---|
getTotal() | 获取总条数 |
getPages() | 获取总页数 |
getPageNum() | 获取当前页 |
getPageSize() | 获取每页显示条数 |
getPrePage() | 获取上一页 |
getNextPage() | 获取下一页 |
isIsFirstPage() | 获取是否是第一页 |
isIsLastPage() | 获取是否是最后一页 |
演示:
- 导入与PageHelper的jar包
- 在mybatis核心配置文件中配置PageHelper插件
<!--分页查询--><plugins><!-- com.github.pagehelper为PageHelper类所在包名 --><plugin interceptor="com.github.pagehelper.PageInterceptor"><!-- 使用MySQL方言的分页 --><property name="helperDialect" value="mysql"/><property name="pageSizeZero" value="true"/></plugin></plugins>
- 测试分页数据获取
@Testpublic void selectPaging() throws Exception{//1.加载核心配置文件InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");//2.获取SqlSession工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);//3.通过工厂对象获取SqlSession对象SqlSession sqlSession = sqlSessionFactory.openSession(true);//4.获取StudentMapper接口的实现类对象StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);//通过分页助手来实现分页功能// 第一页:显示3条数据//PageHelper.startPage(1,3);// 第二页:显示3条数据//PageHelper.startPage(2,3);// 第三页:显示3条数据PageHelper.startPage(1,3);//5.调用实现类的方法,接收结果List<Student> list = mapper.selectAll();//6.处理结果for (Student student : list) {System.out.println(student);}//获取分页相关参数PageInfo<Student> info = new PageInfo<>(list);System.out.println("总条数:" + info.getTotal());System.out.println("总页数:" + info.getPages());System.out.println("当前页:" + info.getPageNum());System.out.println("每页显示条数:" + info.getPageSize());System.out.println("上一页:" + info.getPrePage());System.out.println("下一页:" + info.getNextPage());System.out.println("是否是第一页:" + info.isIsFirstPage());System.out.println("是否是最后一页:" + info.isIsLastPage());//7.释放资源sqlSession.close();is.close();}