• Mybatis-分页插件


    • 目录

      引入介绍

      回顾MySQL的limit实现简易分页

      问题的产生与解决

      分页插件实现步骤

      实例演示

      分页插件相关参数

      实例演示


    • 引入介绍

    • 分页可以将很多条结果进行分页显示
    • 如果当前在第一页,则没有上一页
    • 如果当前在最后一页,则没有下一页
    • 需要明确当前是第几页,这一页中显示多少条结果
    • 回顾MySQL的limit实现简易分页

    • 可以用limit进行
    • 而limit是mysql数据库特有的,其他数据库中没有
    • 问题的产生与解决

    • 在企业级开发中,分页也是一种常见的技术
    • 而目前使用的Mybatis是不带分页功能的
    • 如果想实现分页的功能,需要我们手动编写limit语句
    • 但是不同的数据库实现分页的SQL语句也是不同的
    • 所以手写分页成本较高,这个时候就可以借助分页插件来帮助我们实现分页功能
    • PageHelper
    • 第三方分页助手,将复杂的分页操作进行封装,从而让分页功能变得非常简单
    • 分页插件实现步骤

    • 1.导入jar包
    • 2.在核心配置文件中集成分页助手插件
    • 3.在测试类中使用分页助手相关API实现分页功能
    • 实例演示

      1. <plugins>
      2. <plugin interceptor="com.github.pagehelper.PageInterceptor"/>
      3. plugins>
      1. @Test
      2. public void selectplugin() throws Exception{
      3. //1.加载核心配置文件
      4. InputStream is = Resources.getResourceAsStream("MybatisConfig.xml");
      5. //2.获取SqlSession工厂对象
      6. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
      7. //3.通过工厂对象获取SqlSession
      8. SqlSession sqlSession = sqlSessionFactory.openSession(true);
      9. //4.获取StudentMapper接口的实现类对象
      10. StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
      11. //第一页,显示1条数据
      12. //PageHelper.startPage(1,1);
      13. //第二页,显示1条数据
      14. PageHelper.startPage(2,1);
      15. List list = mapper.selectAll();
      16. for(Student student : list){
      17. System.out.println(student);
      18. }
      19. sqlSession.close();
      20. is.close();
      21. }
    • 分页插件相关参数

    • PageInfo
    • 封装分页相关参数的功能类
    • 核心方法
    • getTotal()
    • 获取总条数
    • 返回值:long
    • getPages()
    • 获取总页数
    • 返回值:int
    • getPageNum()
    • 获取当前页
    • 返回值:int
    • getPageSize()
    • 获取每页显示条数
    • 返回值:int
    • getPrePage()
    • 获取上一页
    • 返回值:int
    • getNextPage()
    • 获取下一页
    • 返回值:int
    • isIsFirstPage()
    • 获取是否是第一页
    • 返回值:boolean
    • isIsLastPage()
    • 获取是否是最后一页
    • 返回值:boolean
    • 实例演示

      1. @Test
      2. public void selectplugin() throws Exception{
      3. //1.加载核心配置文件
      4. InputStream is = Resources.getResourceAsStream("MybatisConfig.xml");
      5. //2.获取SqlSession工厂对象
      6. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
      7. //3.通过工厂对象获取SqlSession
      8. SqlSession sqlSession = sqlSessionFactory.openSession(true);
      9. //4.获取StudentMapper接口的实现类对象
      10. StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
      11. //第一页,显示1条数据
      12. //PageHelper.startPage(1,1);
      13. //第二页,显示1条数据
      14. PageHelper.startPage(2,1);
      15. List list = mapper.selectAll();
      16. for(Student student : list){
      17. System.out.println(student);
      18. }
      19. //获取分页相关参数
      20. PageInfo info = new PageInfo<>(list);
      21. System.out.println("总条数:"+info.getTotal());
      22. System.out.println("总页数:"+info.getPages());
      23. System.out.println("当前页:"+info.getPageNum());
      24. System.out.println("每页显示条数:"+info.getPageSize());
      25. System.out.println("上一页:"+info.getPrePage());
      26. System.out.println("下一页:"+info.getNextPage());
      27. System.out.println("是否是第一页:"+info.isIsFirstPage());
      28. System.out.println("是否是最后一页:"+info.isIsLastPage());
      29. sqlSession.close();
      30. is.close();
      31. }
  • 相关阅读:
    【蓝桥杯选拔赛真题02】C++计算天数 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析
    期末前端web大作业——名侦探柯南网页制作 Hbuiderx制作网页 静态HTML网页单页制作 dreamweaver网页设计与制作代码 web前端期末大作业
    软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本
    java基础 集合(2) Set接口
    Linux常见的20个命令
    Removing the Bias of Integral Pose Regression 阅读笔记
    设计模式-工厂方法(Factory Method)
    c++图像的边缘检测
    猴子吃桃问题
    【数据代理+事件处理+计算属性与监视+绑定样式+条件渲染】
  • 原文地址:https://blog.csdn.net/weixin_59624686/article/details/126191514