网站首页 > 博客文章 正文
之前讲了Springboot整合Mybatis,然后介绍了如何自动生成pojo实体类、mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能。接下来要说一说Mybatis 的分页功能:使用Mybatis-PageHelper插件,实现分页功能。
一、pagehelper介绍
pageHelper是一款非常简单、易用的分页插件,它能很好的集成在spring boot中。它是一个基于mybatis的一款插件,所以我们在使用它时,我们需要使用mybatis作为持久层框架。
github地址是https://github.com/pagehelper/Mybatis-PageHelper。
二、快速开始
如果我们需要使用pageHelper的话,我们需要在spring boot项目中引入pageHelper的依赖。之前介绍过Spring Boot整合mybatis,这里就不介绍了。《Spring Boot入门系列(六)Spring Boot如何使用Mybatis XML 配置版【附详细步骤】》 。
1、pom 配置
增加pageHelper的依赖
<!-- 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 配置
# 分页框架
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 接口和对应的方法实现。
@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 控制器中增加如下方法:
@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);
}
最后
以上,就把Spring Boot集成pagehelper插件,实现分页功能介绍完了。还是比较简单的。
这个系列课程的完整源码,也会提供给大家。大家私信我(章为忠学架构)。获取这个系列课程的完整源码。
推荐阅读:
Spring Boot入门系列(十五)Spring Boot 开发环境热部署的配置
Spring Boot 使用JdbcTemplate操作数据库,配置多数据源
Maven快速入门(二)手动创建maven项目hellomaven
猜你喜欢
- 2024-09-26 PageHelper在SpringBoot的@PostConstruct中不生效
- 2024-09-26 pageHelper-v4.2源码阅读-分页是怎么实现运行的?
- 2024-09-26 面试官:精通 Mybatis?请回答下这几个问题(二)
- 2024-09-26 Mybatis分页插件-PageHelper(mybatis分页插件的缺点)
- 2024-09-26 Mybatis面试题(mybatis面试题csdn)
- 2024-09-26 MyBatis源码分享篇---Plugin插件原理
- 2024-09-26 网易工程师推荐的开源神器,一键解决Mybatis分页问题
- 2024-09-26 PageHelper循环依赖的处理(循环依赖aop)
- 2024-09-26 Spring AOP 实现动态数据源(读写分离),底层原理是什么
- 2024-09-26 服务器端开发-经典面试题(服务器端测试面试题)
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)