mybatis-plus_分页插件的基本使用


  • 0x01_什么是分页

    • 物理分页和逻辑分页

  • 0x02_数据库中如何实现分页

  • 0x03_mybatis-plus中的插件主体


mybatis-plus_分页插件(简单介绍)

0x01_什么是分页

简单来说:大量数据无法一次性全部显示在网页上?怎么办?只能选取其中的一部分,将大量数据分成好几段,每一段我们用一个网页显示,也就是一页,在页面上我们可以手动控制我们要选择的页面.分页就是将大量数据分成很多页显示的一种处理手段.

看图最容易理解:

mybatis-plus_分页插件的基本使用
image-20221024143929873

分页的好处:

1通过分页,我们不用一次性将所有的数据查出来,只需先查出来一部分,可以减少数据库的IO数据量的传输,降低数据库读写压力,从而提高数据库响应速度

2页面也不用一次性显示所有的数据,可以减少浏览器和服务器之间大量数据的IO传输,从而提高服务器的响应速度

3我们可能只需要很多信息中少数的几条,那么传输其他多余的数据就是无形之中对于资源的浪费,分页可以减少资源的浪费

物理分页和逻辑分页

物理分页:相当于执行了limit分页语句,返回部分数据。物理分页只返回部分数据占用内存小,能够获取数据库最新的状态,实施性比较强,一般适用于数据量比较大,数据更新比较频繁的场景。

逻辑分页:一次性把全部的数据取出来,通过程序进行筛选数据。如果数据量大的情况下会消耗大量的内存,由于逻辑分页只需要读取数据库一次,不能获取数据库最新状态,实施性比较差,适用于数据量小,数据稳定的场合。

0x02_数据库中如何实现分页

比如现在查询t_user表的数据:

select * from t_user where age > 17;

查询结果是:

mybatis-plus_分页插件的基本使用

分页就是数据比较多时候,可以显示一部分,数据库中是这么实现的:

select * from t_user where age > 17 LIMIT 0,5;

查询结果变成了:

mybatis-plus_分页插件的基本使用

limit2个参数的意义:

第一个参数:从第几条数据开始显示(从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中集成了分页插件,我们不需要单独的引入,只需要添加对应的配置类

mybatis-plus_分页插件的基本使用
image-20221024144755260

照样画葫芦即可,首先项目结构:

mybatis-plus_分页插件的基本使用

MybatisPlusConfig类的内容,官网有。注意以下几点:

1.修改数据库类型

mybatis-plus_分页插件的基本使用
image-20221024145717651

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_分页插件的基本使用


原文始发于微信公众号(小东方不败):mybatis-plus_分页插件的基本使用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/47196.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!