mybatis-plus_分页插件(简单介绍)
0x01_什么是分页
简单来说:大量数据无法一次性全部显示在网页上?怎么办?只能选取其中的一部分,将大量数据分成好几段,每一段我们用一个网页显示,也就是一页,在页面上我们可以手动控制我们要选择的页面.分页就是将大量数据分成很多页显示的一种处理手段.
看图最容易理解:

分页的好处:
1通过分页,我们不用一次性将所有的数据查出来,只需先查出来一部分,可以减少数据库的IO数据量的传输,降低数据库读写压力,从而提高数据库响应速度
2页面也不用一次性显示所有的数据,可以减少浏览器和服务器之间大量数据的IO传输,从而提高服务器的响应速度
3我们可能只需要很多信息中少数的几条,那么传输其他多余的数据就是无形之中对于资源的浪费,分页可以减少资源的浪费
物理分页和逻辑分页
物理分页
:相当于执行了limit分页语句,返回部分数据。物理分页只返回部分数据占用内存小,能够获取数据库最新的状态,实施性比较强,一般适用于数据量比较大,数据更新比较频繁的场景。
逻辑分页
:一次性把全部的数据取出来,通过程序进行筛选数据。如果数据量大的情况下会消耗大量的内存,由于逻辑分页只需要读取数据库一次,不能获取数据库最新状态,实施性比较差,适用于数据量小,数据稳定的场合。
0x02_数据库中如何实现分页
比如现在查询t_user
表的数据:
select * from t_user where age > 17;
查询结果是:
分页就是数据比较多时候,可以显示一部分,数据库中是这么实现的:
select * from t_user where age > 17 LIMIT 0,5;
查询结果变成了:
limit
2个参数的意义:第一个参数:从第几条数据开始显示(从0开始)
第二个参数:每页有多少条数据
所以,如果查询 第n 页,每页x条 数据那么sql语句应该写成
Select * from student limit (n-1)*x,x
即:
SELECT * FROM emp LIMIT (页码数-1)*页大小,页大小
0x03_mybatis-plus中的插件主体
官网链接:https://baomidou.com/pages/2976a3/#mybatisplusinterceptor
在MyBatisPlus中集成了分页插件,我们不需要单独的引入,只需要添加对应的配置类

照样画葫芦即可,首先项目结构:
MybatisPlusConfig
类的内容,官网有。注意以下几点:
1.修改数据库类型

2.MybatisPlusConfig增加注解
增加注解:
@Configuration
@MapperScan("com.bones.mp.mapper")
测试(测试一些常用的方法):
/**
* 测试分页
*/
@Test
void testPaging(){
//创建Page对象
Page<User> page = new Page<>(0,5);
//查找
Page<User> userPage = userMapper.selectPage(page, null);
System.out.println("userPage.getPages() = " + userPage.getPages());
System.out.println("userPage.getCurrent() = " + userPage.getCurrent());
System.out.println("userPage.getRecords() = " + userPage.getRecords());
System.out.println("userPage.getSize() = " + userPage.getSize());
System.out.println("userPage.getTotal() = " + userPage.getTotal());
System.out.println("userPage.hasNext() = " + userPage.hasNext());
System.out.println("userPage.hasPrevious() = " + userPage.hasPrevious());
}
注意:
和数据库中的分页思想一致,创建Page对象的时候,可以指定分页从哪一条数据开始,每页有多少数据:
原文始发于微信公众号(小东方不败):mybatis-plus_分页插件的基本使用
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/47196.html