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

SpringBoot之整合PageHelper分页插件

SpringBoot之整合PageHelper分页插件

文章目录

  • SpringBoot之整合PageHelper分页插件
  • 1. 引入坐标
  • 2. application.yml配置
  • 3. 基本使用
  • 4. 对多个查询执行分页
    • 1. 默认第一个Select语句会执行分页
    • 2. 让Pagehelper也能执行多个分页的方法
    • 3. 完整案例

详细配置请查看官网或MyBatis分页插件之PageHelper详细介绍-CSDN博客

1. 引入坐标

<!--pagehelper--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.3.0</version><!--排除pagehelper的依赖mybatis和mybatis-spring的jar包以免与mybatis-plus的冲突,导致报NoClassFound org.mybatis.logging.LoggerFactory--><exclusions><exclusion><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></exclusion><exclusion><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId></exclusion></exclusions></dependency>

2. application.yml配置

pagehelper:helper-dialect: mysqlreasonable: truesupport-methods-arguments: trueparams: count=countSql

3. 基本使用

    @Autowiredprivate PublicService publicService;	   @GetMapping(value = "/getUserList")public Result<PageInfo> getUserList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,@RequestParam(name="pageSize", defaultValue="5") Integer pageSize){StringBuffer sql = new StringBuffer();sql.append("SELECT\n" +" a.id,\n" +" a.username,\n" +" b.id AS file_id,\n" +" b.file_url,\n" +" b.file_size,\n" +"FROM\n" +" sys_user a\n" +" LEFT JOIN sys_file b ON a.id = b.parent_id \n" +"WHERE\n" +" a.del_flag = '0'");Result result = new Result<>();Map map = new HashMap(5);map.put("sql",sql.toString());//获取第pageNo页,pageSize条内容,默认查询总数countPageHelper.startPage(pageNo, pageSize);//紧跟着的第一个select方法会被分页List<Map<String, Object>> mapList = publicService.sqlQuery(map);result.setResult(mapList);result.setSuccess(true);PageInfo pageInfo = new PageInfo(mapList);return Result.OK(pageInfo);

4. 对多个查询执行分页

Pagehelper中只有紧跟在 PageHelper.startPage 方法后的第一个 Mybatis 的查询(Select)方法会被分页。

1. 默认第一个Select语句会执行分页

案例代码如下:

 
@Autowired
private PublicService publicService;public List<SignatureUser> getUserList(){//获取第pageNo页,pageSize条内容,默认查询总数countPageHelper.startPage(pageNo, pageSize);//紧跟着的第一个select方法会被分页List<Map<String, Object>> mapList = publicService.sqlQuery(map);IPage iPage = IPageUtil.pageData(mapList);//下面这个查询不会分页List<SignatureUser> signatureUserList = publicService.getSignatureUserList(map);System.out.println(signatureUserList.size());return signatureUserList;
}

2. 让Pagehelper也能执行多个分页的方法

在查询参数中设置pageNum与pageSize参数使其第二个查询也能分页,如下:

@Autowired
private PublicService publicService; public List<SignatureUser> getUserList(){//获取第pageNo页,pageSize条内容,默认查询总数countPageHelper.startPage(pageNo, pageSize);//紧跟着的第一个select方法会被分页List<Map<String, Object>> mapList = publicService.sqlQuery(map);IPage iPage = IPageUtil.pageData(mapList);System.out.println("第一个查询分页结果",iPage);Map map1 = new HashMap(3);//加入mybatis分页的参数pageNum与pageSize则其他查询也能分页map1.put("pageNum", pageNo);map1.put("pageSize", pageSize);List<SignatureUser> signatureUserList = publicService.getSignatureUserList(map1);System.out.println(signatureUserList.size());return signatureUserList;
}

3. 完整案例

    @Autowiredprivate PublicService publicService; @ApiOperation(value = "用户信息列表", notes = "用户信息列表")@GetMapping(value = "/getUserList")public Result<?> getUserList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,@RequestParam(name="pageSize", defaultValue="5") Integer pageSize){StringBuffer sql = new StringBuffer();sql.append("SELECT\n" +" a.id,\n" +" a.username,\n" +" b.id AS file_id,\n" +" b.file_url,\n" +" b.file_size,\n" +"FROM\n" +" sys_user a\n" +" LEFT JOIN sys_file b ON a.id = b.parent_id \n" +"WHERE\n" +" a.del_flag = '0'");//一.直接sql方式分页Map map = new HashMap(5);map.put("sql",sql.toString());//获取第pageNo页,pageSize条内容,默认查询总数countPageHelper.startPage(pageNo, pageSize);//紧跟着的第一个select方法会被分页List<Map<String, Object>> mapList = publicService.sqlQuery(map);IPage iPage = IPageUtil.pageData(mapList);//return Result.OK(iPage);//二.对象集合分页Map map1 = new HashMap(3);map1.put("pageNum", pageNo);map1.put("pageSize", pageSize);List<SignatureUser> signatureUserList = publicService.getSignatureUserList(map1);System.out.println(signatureUserList.size());return Result.OK(IPageUtil.pageData(signatureUserList));}

相关文章:

  • 代码随想录算法训练营DAY14 | 二叉树 (1)
  • vue3 之 组合式API—computed
  • 代码随想录算法训练营第四十一天| 343. 整数拆分、96.不同的二叉搜索树
  • 忘记 RAG:拥抱Agent设计,让 ChatGPT 更智能更贴近实际
  • 【多模态大模型】视觉大模型SAM:如何使模型能够处理任意图像的分割任务?
  • LeAPI 后端接口开发 - 发布、下线接口
  • 导出pdf 加密、加水印、加页脚
  • 计组学习笔记2024/2/5
  • 框架学习Maven
  • Gson源码解读
  • 自动化报告pptx-python|高效通过PPT模版制造报告(三)
  • Jupyter Notebook中的%matplotlib inline详解
  • A系统数据表同步到B系统数据表
  • 2.6作业
  • Java持久化机制和实现的过程
  • [deviceone开发]-do_Webview的基本示例
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 4个实用的微服务测试策略
  • css布局,左右固定中间自适应实现
  • Github访问慢解决办法
  • JAVA 学习IO流
  • Java,console输出实时的转向GUI textbox
  • oschina
  • Spring Boot快速入门(一):Hello Spring Boot
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • vue的全局变量和全局拦截请求器
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 从零开始的无人驾驶 1
  • 反思总结然后整装待发
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 聊聊flink的BlobWriter
  • 扑朔迷离的属性和特性【彻底弄清】
  • elasticsearch-head插件安装
  • Python 之网络式编程
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #Linux(make工具和makefile文件以及makefile语法)
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (五)网络优化与超参数选择--九五小庞
  • (转)平衡树
  • (转)人的集合论——移山之道
  • ./configure,make,make install的作用
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .net FrameWork简介,数组,枚举
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .net开发引用程序集提示没有强名称的解决办法
  • .net专家(高海东的专栏)
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • .考试倒计时43天!来提分啦!