当前位置: 首页 > article >正文

SpringBoot整合分页助手

目录

1 导入依赖

2 测试使用

关于分页有些数据

  • 默认访问首页,即默认当前页是 pageNum= 1

  • 数据有总条数, total = select count(*)

  • 页面大小/每页展示多少条数据, pageSize = 10

  • 总页数 , pageCount = total / pageSize (需要注意除不尽情况)


-- total共7条
select count(*) from tb_user
-- 每页多少条数据: pageSize 3条
-- 总页数pageCount
pageCount = total % pageSize == 0? total/pageSize :(total/pageSize)+1
-- 当前页pageNum=1
-- 查询第1页
select * from tb_user limit 0,3
-- 查询第2页
select * from tb_user limit 3,3
​
-- 查询第pageNum页
select * from tb_user limit (pageNo-1)*pageSize,pageSize
-- 查询第3页面
select * from tb_user limit 6,3

现在使用的是分页助手-pagehelper

  • 原理拦截sql,帮助我们拼接limit

1 导入依赖

<!-- pageHelper依赖-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <!-- 不能使用1.2.6版本,因为版本太低与springboot高版本不兼容,导致启动项目报错 -->
    <version>1.4.2</version>
</dependency>

SpringBoot会自动完成配置,我们直接写代码

2 测试使用

测试是在Controller中直接设置开启分页即可

特别注意!!! 无需改动sql,即不需要自己写limit,分页工具自己会拼接

  
  /**
     * 使用分页查全部
     * pageNum 当前页码
     * pageSize 页面大小
     * 这两个参数需要前端发请求带过来
     */
    @GetMapping("/m2")
    public R testMybatis2(int pageNum,int pageSize) {
        // 使用步骤
        // 1 先设置分页信息
        PageHelper.startPage(pageNum,pageSize);
        // 2 正常执行查询
        List<User> list = mapper.findAll( );
        // 3 通过查询返回的list创建出分页信息,PageInfo内包含所有分页数据,可以点入源码查看
        PageInfo<User> info = new PageInfo<>(list);
        System.out.println("当前面"+info.getPageNum());
        System.out.println("页面大小"+info.getPageSize() );
        System.out.println("总条数"+info.getTotal() );
        System.out.println("总页数"+info.getPages() );
        System.out.println("数据"+info.getList());
        return R.ok(info);
    }

注意,mapper层面还是之前的查询全部findAll,sql语句还是select * from tb_user,不需要写其他的

因为PageHelper插件会自动帮助拼接limit等关键词


http://www.kler.cn/a/350527.html

相关文章:

  • 云上贵州多彩宝荣获仓颉社区先锋应用奖 | 助力数字政务新突破
  • 深度学习中的张量 - 使用PyTorch进行广播和元素级操作
  • uniApp开通uniPush1.0个推,SpringBoot集成uniPush1.0个推
  • owasp SQL 注入-03 (原理)
  • 基于Python的心电图报告解析与心电吸引子绘制
  • protobuf: 通讯录3.1
  • 富士胶片人像汽车照片Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • Unity 3d 鼠标设置的问题——隐藏/显示鼠标、锁定/解锁/限制鼠标、自定义鼠标形状
  • Spring Boot助力B2B医疗平台病历数据交换
  • 智能网联汽车安全隐患,如何化解?
  • Flutter 单例模式技巧与最佳实践
  • java怎么连接数据库sql server
  • Python使用Selenium库实现CSDN自动化发帖
  • 论文阅读-U3M(2)
  • 前端 + Nginx + 后端架构的无感升级方案
  • 2-117 基于matlab的共振峰估计
  • 中国市场的NFT生存法则:消费属性与圈子文化
  • C语言函数递归经典例题:汉诺塔和小青蛙跳台阶
  • C语言简单的链表操作
  • Android 中 View 与 SurfaceView 主动与被动更新的应用场景
  • Vue3 props
  • 注册中心介绍
  • 【原创】java+springboot+mysql劳动教育网系统设计与实现
  • efinance库支持哪些类型的金融数据获取?
  • GitHub每日最火火火项目(10.16)
  • Linux platform子系统和设备树