快捷搜索: 王者荣耀 脱发

PageHelper分页插件使用

分页插件PageHelper:

MyBatis没有分页功能,需要手动编写LIMIT语句,可以使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据
PageInfo:

PageInfo常用方法:

方法 说明 getTotal() 获取总条数 getPages() 获取总页数 getPageNum() 获取当前页 getPageSize() 获取每页显示条数 getPrePage() 获取上一页 getNextPage() 获取下一页 isIsFirstPage() 获取是否是第一页 isIsLastPage() 获取是否是最后一页
演示:
  1. 导入与PageHelper的jar包
  2. 在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>
  1. 测试分页数据获取
@Test
    public 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();
    }
经验分享 程序员 微信小程序 职场和发展