【学习】若依源码(前后端分离版)之 “ 分页以及查询的功能实现”

news2024/11/27 16:33:15

大型纪录片:学习若依源码(前后端分离版)之 “ 分页以及查询的功能实现”

  • 前端部分
  • 后端部分
  • 结语

包括代码生成也好,最原始的系统也好,若依里每个页面只要有数据,基本上就有分页的功能,所以理解分页也是一个很重要的过程。今天我们就一起来学习一下他的分页代码和逻辑是怎么实现的。

前端部分

首先随便打开一个有分页功能的页面。找到它分页框对应的那块前端页面
图一
图二
这里用了elementUI的分页组件,其中绑定了包括总数、总共页数以及每页大小。

图三
在vue里面我们找到对应的查询请求参数,为什么还有这么多其他的参数?因为我们分页查询和查询本质上是一个意思,我们带有条件的查询,最后也是按照分页返回;同样如果我们切换页数上面的查询框里有参数也会去根据参数做一个查询。

图四
根据上图可以看到,当我们输入搜索条件并点击查询的时候,首先把页数设置为默认值1,然后再去调用这个 " getList() " 方法。

图五
现在再来看 " getList() " 方法,心细的同学肯定也看到了,在页面初始化的时候就会调用这个方法来返回数据了。这里的 " this.loading = true " ;是用于在加载时,给一个加载效果(一般在接下来的函数成功执行后的回调中会把它改为false)

后端部分

根据前端的请求找到后端对应的方法
图六
后端代码中有一个SecurityConfig类,继承了WebSecurityConfigurerAdapter类,用于配置安全相关的规则。这个类中定义了一些过滤器和拦截器,用于处理前端发来的请求。

图七
其中最重要的是JwtAuthenticationTokenFilter类,继承了OncePerRequestFilter类,用于解析请求头中的token信息,并根据token信息获取用户信息和用户权限。如果token信息有效且用户有访问权限,则放行请求;如果token信息无效或用户无访问权限,则拒绝请求,并返回相应的错误信息。

图八
最后,如果请求被放行,则会进入到对应的控制器和服务层进行业务逻辑处理。例如,如果前端发送了一个分页查询用户列表的请求,如“ /system/user/list?pageNum=1&pageSize=105 ”,则会被映射到StudentController类的List请求上。

图九
这个方法会调用StudentService类的selectStudentList方法,传入一个User对象和一个PageDomain对象作为参数。Student对象用于封装查询条件,如用户名、手机号等;PageDomain对象用于封装分页参数,如当前页码、每页大小等。

图十
PageHelper插件是一个基于MyBatis的分页插件,它可以在执行SQL语句之前,自动添加limit语句,从而实现分页查询。这个方法会使用PageHelper插件来对数据库查询结果进行分页处理,并返回一个PageInfo对象,包含了分页信息和数据列表。 然后,这个PageInfo对象会被转换成一个TableDataInfo对象,并返回给前端。 前端收到这个对象后,会使用Pagination组件来显示分页导航栏和数据表格。

结语

分页处理一方面可以提高我们浏览数据的效率,符合我们浏览者的心理,减少了大量数据存在的杂乱问题;同时分页技术也可以降低带宽使用,提高访问速度。

那么以上就是唐某的一些理解。这次的分享就到这里了。记得一键三连~( •̀ ω •́ )✧

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

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

相关文章

背上大书包准备run之CSS篇

时隔一年多又要准备面试嘞。唉,人生呐,真是变幻莫测哟~ 社招应该不会问很多css吧,,,但是应该也会问吧,,,应该是从好多好多问题里只抽一两个问问吧😭 哦还有h5&#xff…

zabbix简易入门:基本的网络监控、WEB监控、拓朴图规划

需求背景: 我们越来越发现:网络越来越复杂,网络、应用、云端……故障点随时可能发生,而我们不能人工盯着所有的问题,所以,网管软件是必须的。那么没有预算的情况下,我们只好自己布署简单的…

24届近5年浙江工业大学自动化考研院校分析

今天给大家带来的是浙江工业大学控制考研分析 满满干货~还不快快点赞收藏 一、浙江工业大学 学校简介 浙江工业大学(Zhejiang University of Technology),简称浙工大,主校区位于浙江省杭州市,是教育部与…

Stream API总结

Stream是Java 8提供的新特性,使得可以方便的对集合进行各种操作,本篇主要讲解StreamAPI常用方法。 Java8中有两大最为重要的改变。 第一个是 Lambda 表达式; 另外一个则是 Stream API(java.util.stream.*)。 Stream 是 Java8 中处理集合的关…

Java反射机制详解与使用方法大全!!!

❤ 作者主页:李奕赫揍小邰的博客 ❀ 个人介绍:大家好,我是李奕赫!( ̄▽ ̄)~* 🍊 记得点赞、收藏、评论⭐️⭐️⭐️ 📣 认真学习!!!🎉🎉 文章目录 Java反射机制…

Node.js学习笔记-03

七、网络编程 1. 构建 TCP 服务 TCP 是面向连接的协议,显著特征 在传输之前需要3次握手形成会话。 客户端 ——请求连接——> 服务器端 ——响应——> 客户端 ——开始传输——> 服务器端。 2. 构建 UDP 服务 3. 构建 HTTP 服务 http模块 在node中HTT…

电脑数据怎么加密?电脑数据加密软件有哪些?

在生活和工作中,我们总离不开电脑,而电脑中那些重要的数据,需要我们加密保护。那么电脑数据该怎么加密呢?电脑数据加密软件又有哪些呢?下面我们就来了解一下吧。 电脑数据加密软件 一般来说,常见的电脑加密…

Drools用户手册翻译——第四章 Drools规则引擎(十四)复杂事件处理(CEP)滑动窗口和内存管理

甩锅声明:本人英语一般,翻译只是为了做个笔记,所以有翻译错误的地方,错就错了,如果你想给我纠正,就给我留言,我会改过来,如果懒得理我,就直接划过即可。 目录 时间或长…

详解配置交换机多生成树MSTP+VRRP 的典型组网

详解配置交换机多生成树MSTPVRRP 的典型组网 组网: 1. 这是一个由三台交换机组成的倒三角型二层交换网络;网络中有4个VLAN:10、20、30、40;接口编号如图所示;SW3为接入层交换机,SW1、SW2为汇聚层交换机&am…

论文阅读 - Neutral bots probe political bias on social media

论文链接:Neutral bots probe political bias on social media | EndNote Click 试图遏制滥用行为和错误信息的社交媒体平台被指责存在政治偏见。我们部署中立的社交机器人,它们开始关注 Twitter 上的不同新闻源,并跟踪它们以探究平台机制与用…

linux自动程序

嵌入式linux下有软件需要自启动,只需要在/etc/init.d/rcS末尾添加所要启动的程序即可,开机就会自动运行 vi /etc/init.d/rcS在文件末尾添加 例:

Unity-Linux部署WebGL项目MIME类型添加

在以往的文章中有提到过使用IIS部署WebGL添加MIME类型使WebGL项目在浏览器中能够正常加载,那么如果咱们做的是商业项目,往往是需要部署在学校或者云服务器上面的,大部分情况下如果项目有接口或者后台管理系统,后台基本都会使用Lin…

对p-n结/AlGaN/GaN HEMTs中n-GaN掺杂浓度对栅极可靠性的影响

目录 第35届功率半导体器件与集成电路国际研讨会论文集2023年5月28日至6月1日,中国香港南方科技大学电气电子工程系,深圳标题:Impacts of n-GaN Doping Concentration on Gate Reliability of p-n Junction/AlGaN/GaN HEMTs摘要信息解释研究了…

MySQL基本语法总结

创建数据库 create database 数据库名; -- 字符集要看mysql 版本, 5.7 Latin, 8.0 utf8 create database 数据库名 character set ‘utf8’;-- 指定数据库的字符集 create database IF NOT EXISTS 数据库名 character se…

k8s-----集群调度

目录 一:调度约束 二:Pod 启动创建过程 三:k8s调度过程 1、Predicate 有一系列的常见的算法 2、常见优先级选项 3、指定调度节点 (1)nodeName指定 (2)nodeSelector指定 四:亲和…

数字工厂管理系统能给企业管理者带来哪些好处

数字工厂管理系统是现代企业管理的神器,它能够以数字化方式管理企业的生产过程,实现生产过程的自动化、智能化和可视化。数字工厂管理系统解决方案不仅提高了生产效率,还给企业管理者带来了很多好处。下面就让我们来详细了解一下。 首先&…

【Android】MVC,MVP,MVVM三种架构模式的区别

MVC 传统的代码架构模式,仅仅是对代码进行了分层,其中的C代表Controller,控制的意思 将代码划分为数据层,视图层,控制层,三层之间可以任意交互 MVP MVP是在MVC基础上改进而来的一种架构,其中的…

2023年10款常用的Mac工具合集

Typora Typora 是一款由 Abner Lee 开发的轻量级 Markdown 编辑器,与其他 Markdown 编辑器不同的是,Typora 没有采用源代码和预览双栏显示的方式,而是采用所见即所得的编辑方式,实现了即时预览的功能,但也可切换至源代…

帆软设计器:报表超链接“删除”后仍会打开链接的问题

这个问题是在使用帆软报表设计器(版本 10.0)发现的。当直接在决策报表的某个报表下点击 “特效-超级链接” 、并去掉了里面的超链接之后,刷新报表还是鼠标悬浮上去就是一个链接的样子。 找到报表所在单元格 “单元格元素” 的“特效” 配置&a…

【操作系统】操作系统知识点总结(秋招篇)

文章目录 前言操作系统主要做了哪些工作?进程 线程 协程之间的区别进程的组成部分介绍一下进程的PCB讲一下进程的五态 以及它们的状态转移用户态和内核态是什么?进程在用户态和内核态之间是如何切换的讲一下进程之间的通信方式讲一下进程调度的三个层次介…