前后端分页插件

news/2024/5/20 6:27:23/文章来源:https://blog.csdn.net/cylcjsg/article/details/128037015

PageHelper 是一个 MyBatis 的分页插件,支持多种数据库,可查看官网,负责将已经写好的 SQL 语句,进行SQL分页加工。无需你自己去封装以及关心 SQL 分页等问题,支持多种分页方式,如从第0或第一页开始, 使用很方便。

添加依赖

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.3.0</version>
</dependency>

配置分页插件

修改 application.properties,如下配置:

pagehelper.reasonable=true
# 合理化分页,查询当前页小于1时会查第一页,大于总页数时查最后一页
pagehelper.page-size-zero=true
# 当每页大小为零,或limit = 0时会查询全部内容,但结果依旧为PageInfo类型

使用 PageHelper 分页插件

  • 删除 Mapper.xml 文件中查询总数量的代码。
  • 删除 Mapper.xml 文件的分页查询SQL 中的 Limit 子句,QueryObject 中也不需要提供 getStart 方法了。
  • 使用分页插件提供的 PageInfo 类进行封装,不需要我们自己再定义 PageResult 类了。
//业务实现类
public PageInfo<Department> query(QueryObject qo) {// 使用分页插件,传入当前页,每页显示数量PageHelper.startPage(qo.getCurrentPage(), qo.getPageSize());//查询出来全部数据List<Department> departments = departmentMapper.selectForList(qo);return new PageInfo(departments);
}

其底层就是根据拦截到之前那条查询全部的sql,然后去那张表先查询总数据条数,最后给我们的这条查询全部数据的sql拼接limit子句再将查询出来的数据封装到PageInfo类型对象中

前端 twbs-pagination 分页插件

twbs-pagination 是一个简单的自适应 Bootstrap 样式的分页插件,用于前端绘制分页相关的样式效果。官网https://esimakin.github.io/twbs-pagination/
在这里插入图片描述
在官网下载插件并放入项目中,在需要使用的模板文件中引入 jq 和bootstrap 和这个插件的js

<ul id="pagination-demo" class="pagination-sm"></ul>
//需要定义一个拥有这样id和class的ul标签$(function(){var totalPages = /*[[${pageInfo.pages}]]*/ 1;var startPage = /*[[${pageInfo.pageNum}]]*/ 1;//这个插件给jq对象添加一个方法twbsPagination$('#pagination').twbsPagination({totalPages: totalPages, //总页数startPage: startPage,//当前页first:'首页',prev:'上一页',next:'下一页',last:'尾页',visiblePages: 5,//可见页数onPageClick: function (event, page) {$('#currentPage').val(page);//将点击的页码传入我们的表单$('#searchForm').submit();//找到表单并提交查询请求,会带上这个页码}});
});

SweetAlert2

SweetAlert2 是一个美观,响应,可定制,替代 JavaScript 的弹出框。

引入插件

<link rel="stylesheet" href="/static/js/plugins/sweetalert2/sweetalert2.min.css">
<script src="/static/js/plugins/sweetalert2/sweetalert2.min.js"></script>

使用插件

在为一个按钮绑定点击事件,响应函数加上下面代码

Swal.fire({title: '标题',text: "内容",icon: 'warning',showCancelButton: true,confirmButtonColor: '#3085d6',cancelButtonColor: '#d33',confirmButtonText: '确定',cancelButtonText: '取消'
}).then((result) => {if(result.value) {// 点了确定做什么,由开发者决定}
});

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

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

相关文章

论文阅读笔记 | 三维目标检测——VoxelNet算法

如有错误&#xff0c;恳请指出。 文章目录1.背景2. 网络结构2.1 体素特征表示2.2 卷积特征提取2.3 RPN网络3. 实验结果paper&#xff1a;《VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection》 1.背景 以往的3d检测器都难免利用了手工设计特征(hand-…

如何根据不同需求给Word文档设置保护?

Word文档可以设置不同的保护模式&#xff0c;我们可以根据不同需求选择合适的方法&#xff0c;下面介绍一下常用的3种方法。 方法一&#xff1a; 如果不想Word文档被随意打开&#xff0c;我们可以设置打开密码&#xff0c;只有输入正确的密码才能打开文件。 首先&#xff0c…

python面向对象(上)

python面向对象上命名规则对象的创建创建类对象创建实例对象修改增加类属性构造方法构造实例方法不带变量带变量构造方法小例子构造类方法构造静态方法运算符的重载比较运算符重载字符串重载索引或切片重载索引或切片重载检查成员重载重载小结持续更新中~~~~~~~~先上个例子&…

古人的名与字、号、讳、谥有什么区别

古人复杂的名字 这个世界上想来是不存在没有名字的人&#xff0c;即便真的有人没名字&#xff0c;也会被外人赠予姓名&#xff0c;比如说一些古人典籍里的“无名氏”&#xff0c;就是专门用来形容那些没有名字也不清楚根脚的人&#xff0c;即便是现如今一些作品不知道作者是谁…

国外服务器采取数据备份和灾难恢复的重要性

在国外服务器的使用中&#xff0c;数据的安全性和完整性是任何组织都不能忽视的问题。丢失数据可能会对业务造成毁灭性的影响&#xff0c;因此必须有一个完善的数据备份和灾难恢复计划。 什么是备份? 备份将数据复制到辅助形式&#xff0c;如存档文件&#xff0c;在灾难发生时…

C++:函数指针进阶:看完还不用std::function来捶我

1&#xff1a;函数指针的背景 我们先简单聊一下函数指针的背景&#xff0c;具体使用请参考我的这篇博客 C &#xff1a;函数&#xff1a; 函数指针_hongwen_yul的博客-CSDN博客 假设现在有这样一段代码&#xff1a;C/C中可以使用指针指向一段代码&#xff0c;这个指针就叫函…

【外卖项目实战开发一】

文章目录1、软件开发整体介绍2、外卖项目介绍3、环境搭建数据库环境搭建创建数据库执行SQL脚本数据表maven项目搭建添加依赖:application.yml配置application启动类4、后台登录功能开发需求分析代码开发5、后台退出功能开发1、软件开发整体介绍 软件开发流程 角色分工 软件…

Quasar搭建教程初体验

文章目录一、Quasar框架介绍二、搭建一个简单的Quasar程序1、Quasar CLI安装2、创建Quasar应用程序3、运行Quasar三、使用Quasar开发SSR四、使用Quasar开发桌面应用(Electron)1、添加Quasar Electron模式2、运行开发五、使用Quasar移动应用(Capacitor)1、下载安装AndroidStudio…

Scrapy基本概念——Item Pipeline

一、Item Pipeline介绍 蜘蛛抓取的每一个Item都会被发送到Item Pipeline。根据ITEM_PIPELINES的优先级设置&#xff0c;不同的Item Pipeline依次处理每一个Item&#xff0c;最后可删除该Item不做处理&#xff0c;也可将该Item发送到下一个Item Pipeline。Item Pipeline的主要用…

【Shell 脚本速成】05、Shell 运算详解

目录 一、赋值运算 二、算术运算[四则运算] 2.1 运算符与命令 2.2 整形运算 expr 命令&#xff1a;只能做整数运算&#xff0c;格式比较古板&#xff0c;运算符号两边注意空格 let命令&#xff1a;只能做整数运算&#xff0c;且运算元素必须是变量&#xff0c;无法直接对…

11.14-11.21

1.线性蒙皮 1.1 线性蒙皮定义 线性蒙皮&#xff1a;是由一系列骨骼驱动的。每个顶点会根据顶点权重图和相应的骨骼关联。根据骨骼在当前位置相对于静止位置的变换矩阵以及此顶点相对于该骨骼的权重&#xff0c;我们可以计算出该顶点在该骨骼影响下的位置。 假设Wij是第j个骨…

OpenGL原理与实践——核心模式(五):颜色、基础光照、Phong模型、材质与光

目录 颜色相关理论 什么是颜色 如何计算颜色&#xff1f; 简单实现 Phong光照模型——局部光照模型 环境光 ​编辑 漫反射 镜面反射 材质与光 材质与纹理的关系 材质在shader的体现 材质属性与光属性 光在shader的体现 整体源码实现及渲染结果 关键代码 shade…

【Kubernetes | Pod 系列】Pod的 YAML 清单文件详解

目录3. Pod的 YAML 清单文件3.1 获取资源对象 YAML3.2 解析 YAML 清单文件&#xff08;1&#xff09;apiVersion查看 Kubernetes API 中全部的 API 组&#xff08;2&#xff09;kind查看 Kubernetes 中全部的对象资源类型&#xff08;3&#xff09;metadata&#xff08;4&#…

cron表达式,结构、字段说明、特殊字符说明、常用表达式

1.cron表达式的结构 Cron表达式是一个字符串&#xff0c;结构非常简单。Cron表达式从左到右分为6或7个字段&#xff0c;每个字段代表一个含义&#xff0c;用空格隔开。如下图所示&#xff1a; 2.cron表达式中各个字段的说明和规则 Cron一共有7位&#xff0c;最后一位是年份&…

C语言既然可以自动为变量分配内存,为什么还要用动态分配内存呢?

一、前言 不知道大家在学习C语言动态分配内存的时候有没有过这样的疑问&#xff0c;既然系统可以自动帮我们分配内存&#xff0c;为什么还需要我们程序员自己去分配内存呢&#xff1f; 如果想要弄清楚这些问题&#xff0c;我们首先就要了解静态内存和动态内存有什么区别&…

Pycharm开发环境下创建python运行的虚拟环境(自动执行安装依赖包)

问题&#xff1a;基于Django开发的后台程序涉及到很多依赖的开发包&#xff0c;将该项目迁移到其它电脑环境下运行需要搭建环境&#xff0c;由于项目中有requirement.txt&#xff0c;该文件内包含了运行该项目所需的依赖&#xff1b;最简便的方式是执行命令自动安装requirement…

【App自动化测试】(九)移动端复杂测试环境模拟——来电、短信、网络切换

目录1. 发送短信2. GSM电话3. 设置模拟信号强弱4. 设置网速5. 设置网络连接类型前言&#xff1a; 本文为在霍格沃兹测试开发学社中学习到的一些技术写出来分享给大家&#xff0c;希望有志同道合的小伙伴可以一起交流技术&#xff0c;一起进步~ &#x1f618; 当我们使用模拟器来…

CUDA——向量化内存

许多 CUDA 内核受带宽限制&#xff0c;新硬件中触发器与带宽的比率增加导致更多带宽受限内核。 这使得采取措施缓解代码中的带宽瓶颈变得非常重要。 在本文中&#xff0c;我将向您展示如何在 CUDA C/C 中使用矢量加载和存储来帮助提高带宽利用率&#xff0c;同时减少执行指令的…

kafka消息的序列化与反序列化

一、前言 在使用kafka发送消息时&#xff0c;producer端需要序列化&#xff0c;在大多数场景中&#xff0c; 需要传输的是与业务规则相关的复杂类型&#xff0c; 这就需要自定义数据结构。 Avro是一种序列化框架&#xff0c; 使用JSON来定义schema&#xff0c; sh cema由原始类…

PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八]

PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八] 原项目链接&#xff1a;fork一下即可&#xff1a;https://aistudio.baidu.com/aistudio/projectdetail/5096910?contributionType1 相关项目参考&#xff1a;&#xff08;其余图神经网络相关项目见主页&#xff09; …