首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Spring Boot入门系列(十六)整合pagehelper,一秒实现分页功能!

Spring Boot入门系列(十六)整合pagehelper,一秒实现分页功能!

作者头像
章为忠学架构
发布于 2020-07-27 15:43:03
发布于 2020-07-27 15:43:03
15.8K00
代码可运行
举报
文章被收录于专栏:AI大模型AI大模型
运行总次数:0
代码可运行

之前讲了Springboot整合Mybatis,然后介绍了如何自动生成pojo实体类、mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能。接下来要说一说Mybatis 的分页功能:使用Mybatis-PageHelper插件,实现分页功能。

一、pagehelper介绍

pageHelper是一款非常简单、易用的分页插件,它能很好的集成在spring boot中。它是一个基于mybatis的一款插件,所以我们在使用它时,我们需要使用mybatis作为持久层框架。

github地址是https://github.com/pagehelper/Mybatis-PageHelper。

二、整合pagehelper

如果我们需要使用pageHelper的话,我们需要在spring boot项目中引入pageHelper的依赖。之前介绍过Spring Boot整合mybatis,这里就不介绍了。《Spring Boot入门系列(六)Spring Boot如何使用Mybatis XML 配置版【附详细步骤】》 。

1、pom 配置

增加pageHelper的依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- pagehelper -->
<dependency>    
    <groupId>com.github.pagehelper</groupId>    
    <artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>

注意:spring boot 引入的jar包必须是要pagehelper-spring-boot-starter ,如果单独引入pagehelper的话,会提示错误。

2、application.properties增加pagehelper 配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 分页框架
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

说明:

  helperDialect :指定数据库,可以不配置,pagehelper插件会自动检测数据库的类型。

  resonable :分页合理化参数默认false,当该参数设置为true 时,pageNum <= 0 时,默认显示第一页,pageNum 超过 pageSize 时,显示最后一页。

  params :用于从对象中根据属性名取值,可以配置pageNum,pageSize,count 不用配置映射的默认值。

  supportMethodsArguments :分页插件会根据查询方法的参数中,自动根据params 配置的字段中取值,找到合适的值会自动分页。 

到这里配置就完成了,在Springboot中整合就是这么简洁,约定大约配置的方式,大量的减少了配置文件的使用 。

3、实现分页

在原来的UserService类和UserServiceImpl 类中,增加 queryUserListPaged 接口和对应的方法实现。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Override
public List<SysUser> queryUserListPaged(SysUser user, Integer page, Integer pageSize) {
    // 开始分页    
    PageHelper.startPage(page,pageSize);    
    Example example = new Example(SysUser.class);    
    Example.Criteria criteria = example.createCriteria();
    if (!StringUtils.isEmptyOrWhitespace(user.getUsername())) {
            criteria.andLike("username", "%" + user.getUsername() + "%");    
    }
    if (!StringUtils.isEmptyOrWhitespace(user.getNickname())) {
            criteria.andLike("nickname", "%" + user.getNickname() + "%");    
    }
    
    List<SysUser> userList = userMapper.selectByExample(example);
    
    return userList;
}

分页的核心就一行代码, PageHelper.startPage(page,pageSize); 这个就表示开始分页。加了这个之后pagehelper 插件就会通过其内部的拦截器,将执行的sql语句,转化为分页的sql语句。

注意:使用时PageHelper.startPage(pageNum, pageSize)一定要放在列表查询的方法中,这样在查询时会查出相应的数据量且会查询出总数。

4、在原来的MybatisController 控制器中增加如下方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RequestMapping("/queryUserListPaged")
public JSONResult queryUserListPaged(Integer page) {
    if (page == null) {
            page = 1;    
    }
    int pageSize = 10;
    SysUser user = new SysUser();
    List<SysUser> userList = userService.queryUserListPaged(user, page, pageSize);
    return JSONResult.ok(userList);
}

说明:

  调用的方法,只需将page页码,和pageSize 每页多少条这两个字段传入即可。

最后

以上,就把Spring Boot集成pagehelper插件,实现分页功能介绍完了。还是比较简单的。

这个系列课程的完整源码,也会提供给大家。大家关注我的微信公众号(架构师精进),回复:springboot源码。获取这个系列课程的完整源码。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师精进 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Boot入门系列(六)Spring Boot整合Mybatis「附详细步骤」
前面介绍了Spring Boot 中的整合Thymeleaf前端html框架,同时也介绍了Thymeleaf 的用法。
章为忠学架构
2020/03/19
1.1K0
mybatis基于pagehelper插件实现分页功能
之前实现了下面的功能,现在就来实现一下mybatis的分页查询功能。提供两种实现方式,都是基于pagehelper插件实现的。项目地址见文末。
jiankang666
2022/05/12
3760
Spring Boot 2.x(十三):你不知道的PageHelper
说起PageHelper,使用过Mybatis的朋友可能不是很陌生,作为一款国人开发的分页插件,它基本上满足了我们的日常需求。但是,我想去官方文档看看这个东西配合Spring Boot进行使用的时候,发现了这个:
山禾说
2019/03/19
1.2K0
Spring Boot 2.x(十三):你不知道的PageHelper
Spring Boot:实现MyBatis分页
想必大家都有过这样的体验,在使用Mybatis时,最头痛的就是写分页了,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真的不想花双倍的时间写 count 和 select,幸好我们有 pagehelper 分页插件,pagehelper 是一个强大实用的 MyBatis 分页插件,可以帮助我们快速的实现MyBatis分页功能,而且pagehelper有个优点是,分页和Mapper.xml完全解耦,并以插件的形式实现,对Mybatis执行的流程进行了强化,这有效的避免了我们需要直接写分页SQL语句来实现分页功能。那么,接下来我们就来一起体验下吧。
朝雨忆轻尘
2019/06/19
2.2K0
Spring Boot:实现MyBatis分页
Spring boot Mybatis-XML方式分页查询PageHelper(五)
PageHelper介绍 PageHelper是Github上有位开发者写了一个分页插件,可以很方便的添加到MyBatis的拦截器接口中。 Github项目地址 pom.xml添加依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.0</version> </dependency> 配置文件编写 @Configur
楠楠
2018/09/11
3.3K0
Spring boot Mybatis-XML方式分页查询PageHelper(五)
SpringBoot+Mybatis+PageHelper实现分页
mybatis自己没有分页功能,我们可以通过PageHelper工具来实现分页,非常简单方便
用户2409797
2019/02/25
4.4K0
springboot整合mybatis分页插件PageHelper实战
https://www.cnblogs.com/xifengxiaoma/p/11027551.html
全栈程序员站长
2022/11/03
1.6K0
Spring Boot 整合 mybatis-pagehelper
1.引入分页插件依赖 <!--pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.12</version> </dependency> 2.配置 yml # 分页插件配置 pagehelper: helperDialect: mysql supportM
灰太狼学Java
2022/06/17
2220
开源MyBatis分页插件,省时省力
如何能让自己在使用Mybatis时事半功倍?让自己效率提升释放时间?那么就一定要看看今天TJ君给你介绍的这款Mybatis通用分页开源插件:
程序猿DD
2021/12/01
7230
SpringBoot整合分页插件PageHelper
在springboot中使用PageHelper插件有两种较为相似的方式,接下来我就将这两种方式进行总结。官方使用说明
zpzp6
2023/03/23
1.4K0
MyBatis最简单方便的分页插件PageHelper
使用 PageHelper 你只需要在 classpath 中包含 pagehelper-x.x.x.jar 和 jsqlparser-0.9.5.jar。
4xx.me
2022/06/09
2.1K0
分页失效之谜:加解密组件如何影响分页逻辑?
新加的这个注解,看着也没啥问题呀,其它项目也是这样的且已经上线,没有发现有啥问题。
烟雨平生
2024/07/31
2040
分页失效之谜:加解密组件如何影响分页逻辑?
pagehelper和通用mapper与springboot整合
关于pageHelper的使用,其官方文档中介绍的比较清楚,地址为:https://pagehelper.github.io/docs/howtouse/
山行AI
2019/07/12
1.4K0
pagehelper和通用mapper与springboot整合
Spring Boot集成Mybatis--使用分页插件
目标:实现Spring Boot使用easyexcel实现导入导出Excel 工具:IDEA--2020.1 学习目标:Spring Boot使用easyexcel实现导入导出Excel 本次学习的工程下载链接放到文本最后面(含数据库文件)
背雷管的小青年
2020/06/08
1.8K0
Spring Boot集成Mybatis--使用分页插件
Spring Boot2.0 整合mybatis、分页插件、druid
本文主要是针对SpringBoot2.0.2版本,实现整合mybatis、分页插件、druid等组件,实现完整的web服务,提供restful风格接口。
kinbug [进阶者]
2019/03/12
2.3K0
Spring Boot2.0 整合mybatis、分页插件、druid
mapper怎么用_当前余额和通用余额
在线官方文档:https://gitee.com/free/Mapper/wikis/Home
全栈程序员站长
2022/11/08
1.9K0
mapper怎么用_当前余额和通用余额
带你学习最简单的分页插件PageHelper
PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库, 例如mysql、 oracle、mariaDB、 DB2、 SQLite、Hsqldb等。今天墨白就给大家聊聊PageHelper这款分页插件,下面是PageHelper开源地址,感兴趣的小伙伴可以去看一下
框架师
2019/11/10
9750
springBoot2整合pagehelper的爬坑经历
1、正确的pom配置,重点注意spring-boot2.2.4.RELEASE和pagehelper1.2.12的版本搭配
用户5640963
2020/02/24
1.2K0
PageHelper分页插件怎么这么好用
参数说明https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md
码农飞哥
2021/08/18
8660
Spring Boot + Spring Cloud 实现权限管理系统 后端篇(八):MyBatis分页功能实现
使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真不想花双倍的时间写 count 和 select,幸好我们有 pagehelper 分页插件,pagehelper 是一个强大实用的 MyBatis 分页插件,可以帮助我们快速的实现分页功能。那么,接下来我们就来一起体验下吧。
朝雨忆轻尘
2019/06/18
5380
相关推荐
Spring Boot入门系列(六)Spring Boot整合Mybatis「附详细步骤」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验