MyBatis-Plus分页查询(快速上手运用)
系列文章目录
Mybatis-Plus知识点[MyBatis+MyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客
Mybatis-Plus+SpringBoot结合运用_心态还需努力呀的博客-CSDN博客
MyBaits-Plus中@TableField和@TableId用法_心态还需努力呀的博客-CSDN博客
MyBatis-Plus中的更新操作(通过id更新和条件更新)_心态还需努力呀的博客-CSDN博客
MyBatis-Plus删除操作知识点总结_心态还需努力呀的博客-CSDN博客
目录
系列文章目录
前言
一、创建MybaitisPlusConfig配置类
二、实现selectPage分页方法
2.1 selectPage方法源码介绍
2.2 Page源码中构造方法
2.3 分页查询的实现
2.4 运行结果
总结
前言
MyBatis-Plus中分页查询是比较方便的,这个功能在网站中也是非常常用的。这方面的知识点是必备的知识点,在了解本文后,就可在springBoot项目下使用分页插件快速实现分页功能。让我们的开发更加的顺畅和快捷。下面我们看实现流程~
一、创建MybaitisPlusConfig配置类
要使用MP的分页功能,必须要先实现分页插件。将内置对象(PaginationInnerInterceptor)new出来。里面有很多的参数可以配置。我们看官网给的参数信息。这里我们也用dbType。可配置属性如下图:
并将扫描包放到配置类中。默认参数想要修改自己去可以设置,这里我们直接用默认的参数做分页查询。代码如下图所示:
//扫描包
@MapperScan("cn.imust.mp.mapper")
//配置类
@Configuration
public class MybatisPlusConfig {/*** 分页插件,一缓和二缓遵循mybatis的规则*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false// paginationInnerInterceptor.setOverflow(false);// 设置最大单页限制数量,默认 500 条,-1 不受限制// paginationInnerInterceptor.setMaxLimit(500L);interceptor.addInnerInterceptor(paginationInnerInterceptor);return interceptor;}
}
二、实现selectPage分页方法
2.1 selectPage方法源码介绍
首先看下方的源码:
传入参数中第一个为page对象,所以一会儿写代码要先new出来page对象。
第二个参数为查询的条件,和先前的一样,更具条件查询数据库表。
返回值是一个IPage,当中的T为我们使用的User对象。
<P extends IPage<T>> P selectPage(P page, @Param("ew") Wrapper<T> queryWrapper);
2.2 Page源码中构造方法
下方是Page中自带的构造方法,这里我们用第一个构造方法(下图红色框方法)直接设置当前查询的第几页数(current)和每页的条数(size)。我们测试中是下面的代码
Page<User> page=new Page<>(2,1);//查询的2页,每页显示1条数据
当然这里不用构造方法也可set设置值。这里就不演示了。
2.3 分页查询的实现
编写测试方法testSelectPage(),然后查询第二页的数据(数据条数为1)。
查询条件是用户状态(user_status)为0。
将查询结果封装到提供的IPage里。调用该类下的get方法获取总条数、总页数、当前的页数、该页下的所有数据。
最后打印到控制台。
实现代码如下:
//分页查询@Testpublic void testSelectPage(){Page<User> page=new Page<>(2,1);//查询的2页,显示1条数据QueryWrapper<User> wrapper= new QueryWrapper<>();//查询条件wrapper.like("user_status",0);IPage<User> iPage = this.userMapper.selectPage(page, wrapper);System.out.println("数据总条数:"+iPage.getTotal());System.out.println("数据总页数:"+iPage.getPages());System.out.println("当前的页数:"+iPage.getCurrent());//获取该页数的数据List<User> records = iPage.getRecords();//打印当前页的数据for (User record : records) {System.out.println(record);}}
2.4 运行结果
执行效果图如下:
生成的sql语句中可看到限制关键字(LIMIT)。打印总页数、总条数、当前所在页的信息如下。也是打印出来数据库中的第二条数据。实现成功~
总结
本次的分页查询是非常重要的知识点,将来会很常用到该知识点,在用户访问页面时可进行跳转下一页、输入到第几页、每页有多少数据、总页数、总条数都要呈现在用户眼前,不过是以一种前端修饰后好看的页面展示,但用到的数字都是通过该分页功能实现的才传给前端修饰。数据量大是更能显示出分页功能的好处,大家在练习时可结合前后端显示到页面,将数据库数据多添加几十条看看结果。如果对你有帮助的话点个免费的赞哦~
MyBatis-Plus分页查询(快速上手运用)相关推荐
- spring boot集成mybatis-plus——Mybatis Plus 分页查询数据(图解)
Mybatis Plus 分页查询数据(图解) 更新时间 2023-01-01 11:58:32 大家好,我是小哈. 本小节中,我们将学习如何通过 Mybatis Plus 分页查询数据库表中的数据 ...
- Mybatis+springMVC+分页查询+前后端代码
Mybatis+springMVC+分页查询+前后端代码 前言 我们在公司中经常会用到分页查询,最近,我在做一个公司的任务的时候,调用外部系统时需要将结果封装成分页的数据,之前我们都是直接调用我们公司 ...
- mybatis实现分页查询-自己封装分页方法
大致结构如下: 一.定义返回数据结构 创建返回数据结构主要是为了统一方便,和分页查询的关系并不大,也可以忽略这一步. package boc.ljh.config;import io.swagger. ...
- Hasor【付诸实践 03】Dataway 无代码接口工具 DataQL 聚合查询引擎使用 Mybatis 实现分页查询举例说明 + 问题分析(针对GreenPlum数据库)
Hasor 框架 Dataway 使用可参考我之前分享的 SpringBoot 集成 Hasor[Dataway 无代码接口工具]配置及问题解决 .这里记录一下使用DataQL遇到的问题. 1.举例及 ...
- SB mybatis 实现分页查询以及 分页查询请求和返回的封装
首先实现分页查询很简单 ,这里的前提是你是用制动生成mybatis插件写的mybatis: 1.导入分页gav: <dependency><groupId>com.github ...
- MyBatis实现分页查询
目录 一.基于注解的简单分页查询 1.定义对象 2.Mapper接口 3.Controller类 4.功能实现 二.基于注解的较复杂分页查询 1.定义shop实体类和page分页类 2.Mapper接 ...
- 使用 Mybatis——Plus 分页查询
配置拦截器组件 @Configuration public class MyBatisPlusConfig {//分页插件@Beanpublic MybatisPlusInterceptor Myba ...
- MyBatis学习总结(12)——Mybatis+Mysql分页查询
package cn.tsjinrong.fastfile.util; /** * @ClassName: Page * @Description: TODO(分页组件的父类,用来封装分页的 通用 ...
- Mybatis一对多分页查询问题
一.背景引入 Mybatis提供了处理结果集的标签,其中子标签collection可以处理1对多的映射 <resultMap><collection></collecti ...
- 智能一代云平台(三十一):mybatis加入分页
[前言] 在<智能一代云平台(三十):逆向工程生成mybatis>已经将mybatis的逆向工程搞定了:但是美中不足的是mybatis的分页查询:接下来一起来探索一下分页查询. [分页查询 ...
最新文章
- CICC科普栏目丨时间之箭:从熵到大爆炸再到万物理论(一)
- 关于java设计模式笔记
- SuSE sftp限制用户活动目录
- VC中CCheckListBox使用注意事项
- PDA手持终端WinCE系统连接SqlServer数据库
- centos 删除crontab_Centos 7 安装crontab及cron常用命令
- ubuntu16.04备份和恢复系统
- 半小时入门MATLAB编程入门基础知识:
- 配置SQL Server的命名管道和TCP/IP设置
- Centos系统基于Docker安装tensorflow
- 编译GDAL支持MySQL
- 迭代器模式的原理和实现
- java:中文汉语数字和阿拉伯数字互相转换,人民币大小写转换
- 【杀毒】-记一次挖矿病毒sysdrr杀毒
- 廊坊金彩教育:拼多多运营方案
- 海天MA3200Ⅱ/1700卧式_节能注塑机
- JAVA经典面试题(来源于互联网)
- 关系型数据库第四章笔记---关系数据理论
- otc焊接机器人编程模拟软件_otc焊接机器人编程
- Centos8安装常用软件及家用操作命令
热门文章
- 测开系列Selenium Webdriver Python(21)--元素定位2
- 高中信息技术:信息技术教学论
- 两点确定一条直线,已知四个点确定的两条直线,求这两条直线的交点
- java Itextpdf 图片转pdf并压缩下载至浏览器
- 八一电大c语言程序设计,2019年中央电大本科《生产与运作管理》期末考试资料...
- 人生苦短,我用Python--爬虫模拟登陆教务处并且保存数据到本地
- <<计算机操作系统(慕课版)>>第三章参考答案
- 【Python】pyserial module sends hex style byte data to embedd system
- NFC是什么 Android手机上的NFC都能做什么
- 最新电脑版微信可以刷朋友圈啦