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

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

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

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

前端部分

首先随便打开一个有分页功能的页面。找到它分页框对应的那块前端页面
图一
图二
这里用了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.mzph.cn/news/30317.shtml

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

相关文章

机器学习实战2决策树算法

文章目录 决策树算法核心是要解决两个的关键问题sklearn中的决策树模型sklearn建模步骤分类树Criterionrandom_state && splitter剪枝参数max_depthmin_samples_leaf&&min_samples_splitmax_features&&min_impurity_decrease确认最优剪枝参数目标权重参…

VR全景智慧文旅,用科技助力旅游业振兴

引言: 近年来,科技的迅猛发展将我们带入一个全新的数字化时代,而虚拟现实(Virtual Reality,简称VR)技术则以其令人惊叹的全新方式,影响着各个领域。其中,旅游业作为人们探索世界、体…

Camunda 7.x 系列【12】创建流程引擎

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. ProcessEngine2. 创建流程引擎2.1 Java API2.2 XML 配置2.3 Spring2.4 Spring Boot1. Pr…

【2.1】Java微服务:详解Hystrix

✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。 🍎个人主页:Meteors.的博客 💞当前专栏: Java微服务 ✨特色专栏: 知识分享 &am…

VGG16模型详解

VGG16模型详解 0、VGG16介绍 VGG16是一种深度卷积神经网络,由牛津大学的研究团队于2014年开发。 VGG16在2014年的ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 竞赛中取得了显著的成绩。它在图像分类任务中获得了当年的第二名,其准确…

matplotlib 笔记 plt.grid

用于添加网格线 主要参数 visible 布尔值,True表示画网格 which表示要显示的刻度线类型,可以是 major(主刻度)或 minor(次刻度),或者同时显示(both)alpha 透明度 …

音视频--视频数据传输

参考文献 H264码流RTP封装方式详解:https://blog.csdn.net/water1209/article/details/126019272H264视频传输、编解码----RTP协议对H264数据帧拆包、打包、解包过程: https://blog.csdn.net/wujian946110509/article/details/79129338H264之NALU解析&a…

【Redis】初学Redis

目录 使用Redisyum安装redis启动redis操作redis设置远程连接 Redis路线Redis 使用Redis yum安装redis 使用命令,直接将Redis安装到linux服务器: yum -y install redis启动redis redis-server /etc/redis.conf &操作redis redis-cli设置远程连接…

Shopee虾皮买家号注册时需要注意什么问题

虾皮是一家在线购物平台,如果您打算在虾皮上注册一个买家账号,以下是一些需要注意的问题: 账号安全:确保您选择一个安全的密码,并定期更改密码,以保护您的账号免受未经授权的访问。 个人信息:…

网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(四)对战模块

网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(四)对战模块 一、约定前后端交互接口1. 建立连接接口2. 针对落子的请求和响应 二、实现前端页面三、实现后端1. 当用户进入房间,更新用户状态 OnlineUserManager…

Linux mysql5.7开启 binlog

查看 mysql是否开启 binlog。 查看命令: show variables like %log_bin%; log_bin OFF 是关闭的状态。 编辑my.cnf配置文件 vim /etc/my.cnf 默认的配置文件内容: 增加下面内容 server_id 1 binlog_format ROW log-bin mysql_log_bin 重启mysq…

木马免杀(篇一)基础知识学习

木马免杀(篇一)基础知识学习 ———— 简单的木马就是一个 exe 文件,比如今年hw流传的一张图:某可疑 exe 文件正在加载。当然木马还可能伪造成各式各样的文件,dll动态链接库文件、lnk快捷方式文件等,也可能…

MySQL单表查询

单表查询 素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varch…

Spring MVC项目概述及创建

Spring MVC项目概述及创建 1.什么是Spring MVC Spring MVC是基于SevletAPI的原始Web框架。Spring MVC项目也叫做SpringWeb项目。 它是在springboot项目中引入了web框架,原本的spring项目不具备网络通信能力,而spring mvc允许http响应,当用…

无刷电机控制

无刷电机控制 特点: 线圈不动,磁极转动电子换向方式消除了有刷电机的缺点单位质量/功率转矩大驱动较复杂

徐雷,太委屈

文 | 螳螂观察 作者 | 仲夏 自3月8日上线以来,京东百亿补贴已整整5个月。相比首月投入10个亿,京东百亿补贴如今的存在显得尴尬与鸡肋。 眼看百亿补贴难以肩负发力下沉市场、扛起低价策略的重任,京东近期又将“京喜拼拼”更名“京东拼拼”卷…

FFmpeg 编码详细流程

介绍 FFmpeg的 libavcodec 模块完成音视频多媒体的编解码模块。FFmpeg 本身不具有音视频编码的功能和底层能力,只是对各类第三方的编码器API 进行封装调用。老版本的 FFmpeg 将avcodec_encode_video2()作为视频的解码函数 API,将avcodec_encode_audio2(…

(学习笔记-进程管理)进程间有哪些通信方式?

每个进程的用户地址空间都是独立的,一般而言是不能互相访问的,但内核空间时每个进程都共享的,所以进程之间要通信必须通过内核 管道 在Linux命令中 [ | ] 这个竖线就是一个管道。 $ ps auxf | grep mysql 它的功能是讲前一个命令&#xf…

如何使用 AT+WEBSERVER 指令实现自定义的 Webserver html 网页配网

开启 AT 固件中的 Webserver 指令和 FS 指令支持 乐鑫官网发布的默认通用 AT 固件不支持 webserver 配网功能, 需要用户自己搭建 esp-at 环境,并在 sdkconfig 中开启 webserver AT 指令 和 FS 指令的支持, 如下图所示: 测试 AT 固…

java中try-with-resources自动关闭io流

文章目录 java中try-with-resources自动关闭io流0 简要说明try-with-resources java中try-with-resources自动关闭io流 0 简要说明 在传统的输入输出流处理中,我们一般使用的结构如下所示,使用try - catch - finally结构捕获相关异常,最后不…