【若依学习记录】RuoYi后台手册——分页实现

目录

若依系统简介

前端调用实现

前端调用举例

后台逻辑实现


若依系统简介

RuoYi 是一个基于 Spring Boot、Apache Shiro、MyBatis 和 Thymeleaf 的后台管理系统,旨在降低技术难度,助力开发者聚焦业务核心,从而节省人力成本、缩短项目周期并提升软件安全质量

  • 前端:基于bootstrap的轻量级表格插件bootstrap-table

  • 后端:基于mybatis的轻量级分页插件pageHelper


前端调用实现

初始化一个数据表格,在网页中以表格形式展示从后端获取的数据

var options = {url: prefix + "/list",columns: [{field: 'id',title: '主键'},{field: 'name',title: '名称'}]
};
$.table.init(options);function queryParams(params) {var search = $.table.queryParams(params);search.userName = $("#userName").val();return search;
}

①配置对象options

  • url:表格加载数据的API地址(后端接口)
  • columns:表格的列配置(数组)
  • field:绑定到数据集源的字段名(即后端数据中的字段名)
  • title:表格表头显示的列标题(即前端显示的表格的每一列的标题)

②初始化表格

  • $.table:插件的命名空间
  • init()函数:初始化表格的方法,将配置对象options传入init()函数,插件会根据配置渲染表格

③自定义查询参数

queryParams()函数在表格插件中自定义查询参数→表格插件将这些参数附加到AJAX请求的URL上,后端就能接收到前端页面上的自定义条件,实现数据过滤

  • params:包含表格的当前状态信息→分页信息、排序信息、搜索条件
  • $.table.queryParams(params):调用表格插件的默认参数处理方法,将param转换为后端接口需要的标准查询参数格式
  • search.userName = $("#userName").val():按用户名过滤表格数据,将值添加到参数对象中,字段名为userName

前端调用举例

假设:

params={pageSize:8,pageNumber:3,sortName:'id',sortOrder:'asc'}

$("#userName").val()值为"Aria"

那么函数会返回:

{pageSize: 8,pageNum: 3,      // 注意:某些插件会转换参数名sort: 'id',order: 'asc',userName: "Aria" // 添加的自定义参数
}

 当表格发起数据请求时,实际请求的URL会变成类似如下的样子:

/user/list?pageSize=8&pageNum=3&sort=id&order=asc&userName=Aria

后台逻辑实现

处理前端表格的分页数据请求的Spring MVC控制器方法,实现用户列表的分页查询功能

//处理POST请求,请求路径为/list
@PostMapping("/list")
//返回结果直接写入HTTP响应体,一般是JSON格式
@ResponseBody
public TableDataInfo list(User user)
{startPage();  // 此方法配合前端完成自动分页List<User> list = userService.selectUserList(user);return getDataTable(list);
}
public TableDataInfo list(User user)

 以上函数接收User对象作为参数,Spring自动将HTTP请求参数绑定到User对象的属性上→返回TableDataInfo对象,封装分页数据的自定义数据结构

startPage();

 分页启动方法:从请求参数中获取分页信息→使用MyBatis分页插件启动分页拦截→后续的数据集查询自动进行物理分页

List<User> list = userService.selectUserList(user);

 调用服务层的selectUserList方法→传入user对象作为查询条件→返回的list是分页后的当前页数据

return getDataTable(list);

 将分页结果封装成前端表格需要的标准数据结构

提示:

项目分页插件默认是MySQL语法,如果项目要改成其他数据库,则需要修改配置application.yml文件中的属性helperDialect:你的数据库


学习链接:后台手册 | RuoYi

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

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

相关文章

从台式电脑硬件架构看前后端分离开发模式

在软件开发领域,前后端分离早已成为主流架构设计理念。它将系统的业务逻辑处理与用户界面展示解耦,提升开发效率与系统可维护性。有趣的是,我们日常生活中常见的台式电脑硬件架构,竟与这一理念有着异曲同工之妙。今天,就让我们从台式电脑的硬件组成出发,深入探讨其与前后…

可观测性的哲学

在现代系统架构中&#xff0c;“可观测性&#xff08;Observability&#xff09;”已不仅仅是一个工程实践&#xff0c;是一种关于“理解世界”的哲学姿态, 还是一种帮助架构演变的认知工具。从柏拉图的“洞穴寓言”出发&#xff0c;我们可以构建起一条从被动接受投影&#xff…

开疆智能CCLinkIE转ModbusTCP网关连接傲博机器人配置案例

本案例是通过CClinkIE转ModbusTCP网关&#xff0c;连接傲博机器人的配置案例 PLC配置 打开三菱PLC组态软件GXWORK3设置CClinkIE一侧的参数配置&#xff0c;首先设置PLC的IP地址 双击详细设置进入CClinkIE配置 添加通用从站IP地址以及占用点数 设置好分配的软元件&#xff0c;确…

Bash Shellshock

CVE-2014-6271(Bash Shellshock远程命令注入漏洞) 该服务启动后有路径http://your-ip:port/victim.cgi和http://your-ip:port/safe.cgi。其中safe.cgi是新版页面&#xff0c;victim是bash4.3生成的页面。 漏洞位置在User-Agent中victim.cgi: User-Agent: () { foo; }; echo C…

以软件系统开发为例,解释PMO 与IPD、CMMI、项目管理什么区别和联系

以「开发一套智能仓储管理系统&#xff08;WMS&#xff09;」为例&#xff0c;拆解软件项目经理视角下的IPD、CMMI、项目管理和PMO如何协同运作&#xff1a; 场景设定 项目目标&#xff1a;6个月内交付WMS系统&#xff0c;支持日均10万订单处理关键角色&#xff1a; 你&#x…

TDengine 3.3.5.0 新功能 —— 查看库文件占用空间、压缩率

1. 背景 TDengine 之前版本一直没有通过 SQL 命令查看数据库占用的磁盘空间大小&#xff0c;从 3.3.5.0 开始&#xff0c;增加了这个方便且实用的小功能&#xff0c;这里详细介绍下。 2. SQL 基本语法 select expr from information_schema.ins_disk_usage [where condtion]…

蚂蚁百宝箱体验:如何快速创建“旅游小助手”AI智能体

蚂蚁百宝箱作为站式智能体应用开发平台&#xff0c;致力于为AI开发者提供简单、高效、快捷的智能体创作体验。作为业内领先的AI应用开发平台&#xff0c;开发者可以根据自身的个性化需求&#xff0c;基于各式各样的大模型来创建一个属于自己的智能体应用。 蚂蚁百宝箱&#xf…

AI助力JMeter—从静态参数化到智能动态化的进化之路

Apache JMeter作为开源利器被广泛应用于Web系统、API接口、数据库及消息队列等多场景性能验证。而“变量的使用”作为测试脚本灵活性和可维护性的核心手段&#xff0c;决定了脚本的复用性、可扩展性和数据驱动能力。传统的变量管理手段已难以应对大规模复杂测试任务中“动态化、…

第十六届蓝桥杯C/C++程序设计研究生组国赛 国二

应该是最后一次参加蓝桥杯比赛了&#xff0c;很遗憾&#xff0c;还是没有拿到国一。 大二第一次参加蓝桥杯&#xff0c;印象最深刻的是居然不知道1s是1000ms&#xff0c;花了很多时间在这题&#xff0c;后面节奏都乱了&#xff0c;抗压能力也不行&#xff0c;身体也不适。最后…

OpenCV计算机视觉实战(12)——图像金字塔与特征缩放

OpenCV计算机视觉实战&#xff08;12&#xff09;——图像金字塔与特征缩放 0. 前言1. 高斯金字塔1.1 应用场景1.2 实现过程 2. 拉普拉斯金字塔2.1 应用场景2.2 实现过程 3. 图像融合实例3.1 应用场景3.2 实现过程 小结系列链接 0. 前言 图像金字塔技术通过对原始图像按不同分…

【案例】基于Python的生源数据可视化分析:从Excel处理到动态地图展示

文章目录 需求分析技术要点程序流程一些细节核心代码表格的一些操作 心得体会代码汇总 需求分析 请设计一个程序&#xff0c;要求能够统计分析分散在不同表格中的数万条信息&#xff0c;以信息中的身份证号码或生源地代码字段为目标字段&#xff0c;统计每一年全国各省份及本省…

设计模式 | 原型模式

原型模式通过克隆机制实现对象高效创建&#xff0c;是性能敏感场景的利器。本文结合C示例详解实现原理、深拷贝陷阱、应用场景&#xff0c;并与工厂模式对比分析。 为何需要原型模式&#xff1f; 当遇到以下场景时&#xff0c;传统构造方法面临挑战&#xff1a; 创建成本高&am…

Go 语言中的单元测试

1、如何编写单元测试 在任何生产级别的项目开发中&#xff0c;单元测试都扮演着至关重要的角色。尽管许多初创项目在早期可能忽略了它&#xff0c;但随着项目逐渐成熟并成为核心业务&#xff0c;为其编写健壮的单元测试是保障代码质量和项目稳定性的必然选择。本文将带您快速掌…

8. 接口专业测试报告生成pytest-html

pytest-html 终极指南&#xff1a;打造专业级接口测试报告 在接口自动化测试中&#xff0c;清晰的测试报告是质量保障的关键。本文将深入解析如何通过pytest-html插件生成专业级测试报告。 一、核心安装与基础使用 快速安装&#xff08;国内镜像&#xff09; pip install -i …

Day45 Tensorboard使用介绍

目录 一、tensorboard的发展历史和原理及基本操作 1.1 发展历史 1.2 tensorboard的原理 1.3 日志目录自动管理 1.4 记录标量数据&#xff08;Scalar&#xff09; 1.5 可视化模型结构&#xff08;Graph&#xff09; 1.6 可视化图像&#xff08;Image&#xff09; 1.7 记…

用AI给AR加“智慧”:揭秘增强现实智能互动的优化秘密

用AI给AR加“智慧”:揭秘增强现实智能互动的优化秘密 引子:增强现实,到底还能怎么更聪明? 还记得当年Pokmon GO火爆全球的场景吗?玩家们手机对准街头,虚拟小精灵活灵活现地跳出来,那就是增强现实(AR)最经典的应用之一。随着硬件发展和算法进步,AR正逐步从“炫酷玩具…

1 Studying《Computer Vision: Algorithms and Applications 2nd Edition》1-5

目录 Chapter 1 Introduction 1.1 什么是计算机视觉&#xff1f; 1.2 简史 1.3 书籍概述 1.4 样本教学大纲 1.5 符号说明 1.6 其他阅读材料 Chapter 2 Image formation 2.1 几何基本元素和变换 2.2 光度图像形成 2.3 数码相机 2.4 其他阅读材料 2.5 练习 Chapter…

Augment插件macOS

macOS苹果电脑vscode-augment免费额度续杯跑满 前言 在AI辅助编程日益普及的今天&#xff0c;Augment作为VS Code中的智能代码助手&#xff0c;为开发者提供了强大的代码生成和优化功能。然而&#xff0c;免费版本每月300次的使用限制往往让重度用户感到困扰。本文将详细介绍如…

OpenCV CUDA模块设备层-----创建一个“常量指针访问器” 的工具函数constantPtr()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 CUDA 设备端模拟一个“指向常量值”的虚拟指针访问器&#xff0c;使得你可以像访问数组一样访问一个固定值。 这在某些核函数中非常有用&…

Python:操作 Excel 删除工作簿

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…