码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SSM整合之Mybatis笔记(MyBatis的分页插件(代码生成器))(P060—P062)


    一 .分页功能分析

    limit index,pageSize
    pageSize :每页显示的条数
    pageNum :当前页的页码
    index :当前页的起始索引, index=(pageNum-1)*pageSize
    count :总记录数
    totalPage :总页数
    totalPage = count / pageSize;
    if(count % pageSize != 0){
    totalPage += 1;
    }
    pageSize=4 , pageNum=1 , index=0 limit 0,4
    pageSize=4 , pageNum=3 , index=8 limit 8,4
    pageSize=4 , pageNum=6 , index=20 limit 8,4
    首页 上一页 2 3 4 5 6 下一页 末页

    二 .分页功能的使用

    在mybatis_mbg模块下测试

    1 . 导入依赖

    
        com.github.pagehelper
        pagehelper
        5.2.0
    

    2.  配置分页插件

    在核心配置文件mybatis-config.xml里面配置

    interceptor = "com.github.pagehelper.PageInterceptor" >

    3.  测试

    把t_emp 表里面的数据断开

    添30条加测试数据

    1. @Test
    2. public void testPage(){
    3. SqlSession sqlSession = SqlSessionUtil.getSqlSession();
    4. EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
    5. //查询功能之前开启分页功能
    6. PageHelper.startPage(1, 4);
    7. List list = mapper.selectByExample(null);
    8. list.forEach(System.out::println);
    9. }

     

     

     三  通过分页插件获取分页相当数据

    1. @Test
    2. public void testPage(){
    3. SqlSession sqlSession = SqlSessionUtil.getSqlSession();
    4. EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
    5. //查询功能之前开启分页功能
    6. Page page = PageHelper.startPage(1, 4);
    7. List list = mapper.selectByExample(null);
    8. list.forEach(System.out::println);
    9. System.out.println(page);
    10. }
    11.  

       

      1. @Test
      2. public void testPage(){
      3. SqlSession sqlSession = SqlSessionUtil.getSqlSession();
      4. EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
      5. //查询功能之前开启分页功能
      6. Page page = PageHelper.startPage(5, 4);
      7. List list = mapper.selectByExample(null);
      8. //查询功能之后可以获取分页相关的所有数据
      9. PageInfo pageInfo = new PageInfo<>(list, 5);
      10. list.forEach(System.out::println);
      11. System.out.println(pageInfo);
      12. }
      13.  

         

         总结

        a> 在查询功能之前使用 PageHelper.startPage(int pageNum, int pageSize) 开启分页功能
        pageNum :当前页的页码
        pageSize :每页显示的条数
        b> 在查询获取 list 集合之后,使用 PageInfo pageInfo = new PageInfo<>(List list, int
        navigatePages) 获取分页相关数据
        list :分页之后的数据
        navigatePages :导航分页的页码数
        c> 分页相关数据
        PageInfo{
        pageNum=8, pageSize=4, size=2, startRow=29, endRow=30, total=30, pages=8,
        list=Page{count=true, pageNum=8, pageSize=4, startRow=28, endRow=32, total=30,
        pages=8, reasonable=false, pageSizeZero=false},
        prePage=7, nextPage=0, isFirstPage=false, isLastPage=true, hasPreviousPage=true,
        hasNextPage=false, navigatePages=5, navigateFirstPage4, navigateLastPage8,
        navigatepageNums=[4, 5, 6, 7, 8]
        }
        pageNum :当前页的页码
        pageSize :每页显示的条数
        size :当前页显示的真实条数
        total :总记录数
        pages :总页数
        prePage :上一页的页码
        nextPage :下一页的页码
        isFirstPage/isLastPage :是否为第一页 / 最后一页
        hasPreviousPage/hasNextPage :是否存在上一页 / 下一页
        navigatePages :导航分页的页码数
        navigatepageNums :导航分页的页码, [1,2,3,4,5]

        以上P01到P62为Mybatis的内容   笔记来自B站杨博超老师的视频笔记  

      14. 相关阅读:
        解决vulhub漏洞环境下载慢卡死问题即解决docker-valhub漏洞环境下载慢的问题
        Android Studio 使用 自带的Hierarchy查看类/方法/调用的层级关系
        『SpringBoot 源码分析』run() 方法执行流程:(4)刷新应用上下文-处理 @Import 注解
        成功解决eNSP模拟器中路由器启动失败,错误码40
        好书分享:《精装版|VirtualLab Fusion高速物理光学软件中文手册》
        shell脚本循环语句
        ELK 基础原理 文档 (二)
        OpenAI 董事会与 Sam Altman 讨论重返 CEO 岗位事宜
        物联网开发笔记(16)- 使用Wokwi仿真micropython on ESP32开发板实现跑马灯(4个LED)
        【解决问题】部署在云服务器、Liunx的项目/jar包/业务服务,其他服务器、本地无法请求无法访问请求404请求报错
      15. 原文地址:https://blog.csdn.net/m0_59281987/article/details/127554402
        • 最新文章
        • 攻防演习之三天拿下官网站群
          数据安全治理学习——前期安全规划和安全管理体系建设
          企业安全 | 企业内一次钓鱼演练准备过程
          内网渗透测试 | Kerberos协议及其部分攻击手法
          0day的产生 | 不懂代码的"代码审计"
          安装scrcpy-client模块av模块异常,环境问题解决方案
          leetcode hot100【LeetCode 279. 完全平方数】java实现
          OpenWrt下安装Mosquitto
          AnatoMask论文汇总
          【AI日记】24.11.01 LangChain、openai api和github copilot
        • 热门文章
        • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
          奉劝各位学弟学妹们,该打造你的技术影响力了!
          五年了,我在 CSDN 的两个一百万。
          Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
          面试官都震惊,你这网络基础可以啊!
          你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
          心情不好的时候,用 Python 画棵樱花树送给自己吧
          通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
          13 万字 C 语言从入门到精通保姆级教程2021 年版
          10行代码集2000张美女图,Python爬虫120例,再上征途
        Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
        正则表达式工具 cron表达式工具 密码生成工具

        京公网安备 11010502049817号