通过使用Mybatis插件来实现数据的分页功能

news2024/12/27 14:21:46

目录

  • 背景
  • 一、SpringBoot的后端
    • 1、手动拼接SQL来实现
    • 2、使用Mybatis插件来实现
  • 二、Vue-cli的前端:
    • 请求响应跟踪
  • 三、在使用Mybatis插件进行多表查询(表数大于2)出现的问题
    • 1. SQL解决
    • 2.后端查询方式改变成嵌套查询
  • 四、 分页总结

背景

分页:

  1. 如果一次性的查询全部数据, 响应时间就太长了, 使得浏览器, java虚拟机都有延迟, 用户使用上就会容易出现卡顿:
  2. 所以就要降低数据库的压力, 使用分页来显示, 一次显示一部分数据

例子:

假设有五条数据, 每一页都显示两条

实现分页要知道:

  1. 每页多少条数据
  2. 当前的页数
  3. 一共多少页数据(可以通过ElementUI来实现自动计算)

一、SpringBoot的后端

1、手动拼接SQL来实现

可以由前端将当前的页数传到后端

由后端将需要展示的数据返回前端

Controller层

在这里插入图片描述
Mapper文件(在不使用Mybatis插件, 使用limit分页)

2、使用Mybatis插件来实现

使用Mybatis插件:

  1. 可以自动为我们的SQL添加limit语句
  2. 还可以再发送一条语句来获取总条数
    (前端需要总条数来计算总页数)
  1. 首先要导入依赖
		<!-- pagehelper依赖 -->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.2.5</version>
		</dependency>
  1. 配置spring文件
    在这里插入图片描述

  2. 使用对应类将总页数, 与数据封装到对象PageInfo里
    在Service层里

在这里插入图片描述

二、Vue-cli的前端:

接收后端发来的数据信息

在这里插入图片描述

分页组件

在这里插入图片描述
在这里插入图片描述
具体说明
在这里插入图片描述

函数说明

在这里插入图片描述


请求响应跟踪

请求
在这里插入图片描述

响应
在这里插入图片描述

三、在使用Mybatis插件进行多表查询(表数大于2)出现的问题

在Mybatis插件进行分页时, 如果数据时多张表进行的联表查询, 插件会出错

比如:
说一个领导有两个职位, 他返回的数据将会是两个相同的领导的数据, 不是一条领导数据对应两个职位
在这里插入图片描述
这里通过mybatis查询出来的total会是两条, id是1与2
而我们希望查询出来是两条, 所以要嵌套查询, 不能一次性联表查询多张表

后端mapper文件

在这里插入图片描述
在这里插入图片描述
本来应该是一个人, 对应两个职位, mybatis是封装好了的, 但是用了分页插件之后, 就会出现
在这里插入图片描述

因为使用mybatis分页插件之后就总会发送一条查询数据总数的SQL语句,
将total放进PageInfo对象发送给前端 , 下面用日志打印出来
在这里插入图片描述

这种原因我们可以在sql解决也可以改变查询方式来解决

1. SQL解决

直接给查询语句添加 group_concat(职位),将两条记录直接合成一条记录
在这里插入图片描述
结果就是种类型: 在这里插入图片描述

2.后端查询方式改变成嵌套查询

mapper文件

在这里插入图片描述

前端再根据v-for将结果循环出来:
在这里插入图片描述

效果就会是 :
在这里插入图片描述

四、 分页总结

  1. 实现分页, 需要在查询数据时候就将limit拼接进SQL
  2. 用Mybatis插件来自动拼接, 并且查询数据的总数给前端
  3. 前端用ElementUI组件接收展示
  4. mybatis本来可以自己将数据封装,类似于 group_concat()的的效果, 但是如果是多张表查询(大于2 )就要使用嵌套查询, 不然达不到想要的效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/683878.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MOOC 作业】第5章 链接层

不是标答也不是参考答案 仅从个人理解出发去做题 1、(20分) 在某网络中标识为 A 到 E 的 5 个结点以星形与一台交换机连接&#xff0c;考虑在该网络环境中某个正在学习的交换机的运行情况。假定&#xff1a;该交换机表初始为空。B 向 E 发送一个帧&#xff0c;此时交换机将该数…

技术干货——mysql8驱动 jdbc下载,看完你会感谢我

目录 1、这里以mysql-connector-java-8.0.29.jar为例 2、打开MySQL官网&#xff0c;点击DOWNLOADS&#xff0c;如下图 3、进入页面后&#xff0c;滚动到下方&#xff0c;点击 MySQL Community (GPL) Downloads 4、进入后&#xff0c;点击Connector/J 5、选择项 6、这里选…

Python循环练习(刚学过循环的新手或者期末考试复习必看)

这个世界并不是掌握在那些嘲笑者的手中&#xff0c;而恰恰掌握在能够经受得住嘲笑与批评&#xff0c;仍不断往前走的人手中 文章目录 1.输入一个整数n&#xff0c;输出从1到n的数字 2.请输入一个整数n&#xff0c;输出n!的值 3.请输入一个正整数n,计算m1-23-4...(-)n 4.字…

队列的应用——层次遍历、计算机系统

目录 队列在层次遍历中的应用队列在计算机系统中的应用 队列在层次遍历中的应用 在信息处理时&#xff0c;有一类问题需要逐层或逐行处理。这类问题的解决方法往往是在处理当前层或当前行时就对下一层或下一行做预处理&#xff0c;把处理顺序安排好&#xff0c;等到当前层或当…

Mybatis如何使用mapper代理开发

1、创建一个接口&#xff0c;与sql映射文件在同一目录&#xff1a; 2、在resources文件创建同一个目录&#xff1a; 目录之间用/分开 com/itheima/mapper 把映射文件放到mapper里 3、设计sql映射文件的namespace属性&#xff0c;为Mapper接口全限定名&#xff1a;要跟映射文件…

MySQL-SQL全部锁详解(上)

​♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#x…

计算机方向常见期刊的缩写 !!

期刊的缩写 TPAMI: IEEE Trans. Pattern Anal. Mach. Intell. IEEE Transactions on Image Processing&#xff08;TIP&#xff09;: IEEE Trans. Image Process. IEEE Transactions on Medical Imaging&#xff08;TMI&#xff09;&#xff1a;IEEE Trans. Med. Imaging IEEE…

【论文笔记】BEIT V2: Masked Image Modeling with Vector-Quantized Visual Tokenizers

1.介绍 1.1 核心观点 当时的所有的重建目标都是关于低级图像元素的&#xff0c;低估了高级语义。 【Q】怎么去定义高级和低级语义 1.2 基本流程 VQ-KD编码器首先根据可学习码本将输入图像转换为离散令牌 然后&#xff0c;解码器学习重建由教师模型编码的语义特征&#x…

4C沟通法则16项注意事项 让项目沟通更高效

在我们日常项目沟通过程中&#xff0c;存在很多沟通障碍&#xff0c;如我以为的错误、不敢越级沟通、害怕被拒绝以及没有提前计划沟通活动等。沟通障碍如需求理解错误、开发团队关系紧张、任务分配执行难度大等问题&#xff0c;往往对项目造成不可估量的影响&#xff0c;有可能…

[Web程序设计]实验:会话技术应用

一、实验目的 &#xff08;1&#xff09;掌握Cookie和session两种会话跟踪技术和它们的应用和区别。 &#xff08;2&#xff09;掌握Cookie和session两种会话的应用和区别。 二、实验内容 &#xff08;1&#xff09;请设计一个类&#xff0c;使用Cookie技术实现显示用户上次…

【消费战略方法论】消费本位的战略模型

消费本位战略模型 消费者需求是价值交换的基础。 在经济学中&#xff0c;“买”与“卖”是经济链中的重要两端&#xff0c;一端连接消费需求决定市场规模&#xff0c;一端连接产品供给决定企业利润。即“买”决定“卖”的根本&#xff0c; “卖”是“买”的基础。消费者需求是…

第1讲 Camera KMD ISP子系统课程介绍

更多资源&#xff1a; 资源描述在线课程极客笔记在线课程知识星球星球名称&#xff1a;深入浅出Android Camera 星球ID: 17296815Wechat极客笔记圈 课程内容介绍 目标&#xff1a;课程会帮助大家理解高通camera kmd驱动&#xff0c;包括一些优秀的设计思想。重点讲解cpas, c…

有关回溯问题,总结的细致要点

目录 对于这三类问题的去重我总结的模板&#xff0c;直接用&#xff1a; 组合&#xff1a; 子集&#xff1a; 排列&#xff1a; 总结&#xff1a; 三类回溯问题框架都是 if ...终止for 遍历递归 三类问题都抽象成树 dfs 对于组合和子集问题&#xff0c;需要用到index对…

软件测试的概念与过程----学习软件测试前的思考

软件测试的概念与过程----学习软件测试前的思考 1、软件测试工作是做什么的&#xff1f;2、那我做软件测试拿到一个软件产品我应该从哪里测试&#xff0c;怎末开始工作&#xff1f;3、测试早做好还是晚一些做好&#xff1f;4、软件测试能将软件测试的一点问题都没有嘛&#xff…

蓝牙无线耳机哪个品牌好?盘点前七名无线蓝牙耳机分享

本文将为您详细介绍每款蓝牙耳机的设计特点、音质表现、续航能力和智能功能等关键信息。我们将提供客观、全面的分析&#xff0c;帮助您更好地了解每款产品的优势和适用场景&#xff1b;无论您是追求高保真音质的音乐发烧友&#xff0c;还是需要轻便舒适的耳机进行运动&#xf…

好选客干货分享:矿物燃料找外贸客户

矿物燃料概述 矿物燃料&#xff0c;也称化石燃料&#xff0c;是由数百万年来的动植物遗骸形成的自然资源&#xff0c;也是人类社会中重要的能源来源之一&#xff0c;主要包括煤炭、石油和天然气。 Image by PublicDomainPictures via Pixabay 在商品类章27章中&#xff0c;矿物…

HashMap的底层实现原理

红黑数演示地址&#xff1a;https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 一、构造源码解读 public class HashMap<K,V> extends AbstractMap<K,V>implements Map<K,V>, Cloneable, Serializable {//1、实现了两个Map接口 &#xff0c;…

【金融量化】购买了多只基金,如何进行资产分配?如何基金组合配置?

【金融量化】购买了多只基金&#xff0c;如何进行资产分配&#xff1f;如何基金组合配置&#xff1f; 1 概念 FOF&#xff08;Fund of fund&#xff09;&#xff0c;即基金中基金&#xff0c;是一种投资于其他投资基金的基金。说白了&#xff0c;就是基金经理是买入多只基金取…

Day_56-57kMeans 聚类

目录 Day_56-57 k-Means 聚类 一. 基本概念介绍 二. 具体过程 三. 代码实现与解释 1. 导入数据与数据初始化 2. 核心代码 3. 后续信息的补充 4. 距离计算和随机排列 四. 后续的数据分析 五. 运行结果 Day_56-57 k-Means 聚类 一. 基本概念介绍 同我上一篇博客的介绍&…

微博视频发布软件有哪些

微博视频发布软件有哪些&#xff0c;新的新浪微博怎么发微博#科技#手机操作#微信 软件有月卡、季卡、半年卡、年卡 【引流脚本软件发帖顶帖有货】 服务时间&#xff1a;&#xff08;8&#xff1a;00—23&#xff1a;00&#xff09; 需要观看软件操作视频教程的可关注↑↑↑上…