ruoyi-vue列表显示关联
ruoyi-vue列表显示关联轻松搞定数据表的“亲戚关系”在开发企业级应用时我们经常会遇到一个场景一个列表里需要显示其他表的数据。比如在“订单列表”里显示“客户名称”而不是冷冰冰的客户ID。这就是所谓的“列表显示关联”——在ruoyi-vue框架中通过简单的配置和代码就能让不同数据表之间“拉上亲戚关系”让列表信息更直观、更友好。### 为什么需要关联显示假设你有一个“员工表”和一个“部门表”。在员工管理页面的列表里直接显示“部门ID”显然不人性化。用户想知道的是“张三属于哪个部门”而不是“张三的部门ID3”。因此我们需要在员工列表的“部门”列中显示部门表中的“部门名称”。这种跨表查询并展示关联字段的能力就是ruoyi-vue框架的核心优势之一。ruoyi-vue使用MyBatis-Plus作为ORM框架结合Vue和Element UI提供了一套完整的关联数据处理流程。下面我们通过两个实际案例来演示具体实现。### 案例一一对多关联——员工与部门这是最常见的场景多个员工属于一个部门在员工列表中显示部门名称。#### 后端实现首先在员工表的实体类中我们需要添加一个非数据库字段来存储部门名称。在ruoyi的BaseEntity中可以使用Excel注解来标记导出字段但为了显示关联我们需要自定义一个字段。java// SysEmployee.java 员工实体类public class SysEmployee extends BaseEntity { private static final long serialVersionUID 1L; /** 员工ID */ Excel(name 员工序号, cellType ColumnType.NUMERIC) private Long empId; /** 员工姓名 */ Excel(name 员工姓名) private String empName; /** 部门ID */ Excel(name 部门编号) private Long deptId; /** 部门名称非数据库字段用于显示关联 */ Excel(name 所属部门) private String deptName; // 这个字段在数据库表中不存在 // getters and setters...}然后在Mapper层编写关联查询的SQL。这里使用MyBatis的XML文件或者注解方式。推荐使用XML方式更清晰。xml!-- SysEmployeeMapper.xml --select idselectEmployeeList parameterTypeSysEmployee resultMapSysEmployeeResult SELECT e.emp_id, e.emp_name, e.dept_id, d.dept_name FROM sys_employee e LEFT JOIN sys_dept d ON e.dept_id d.dept_id where if testempName ! null and empName ! AND e.emp_name LIKE CONCAT(%, #{empName}, %) /if /where/select注意这里的LEFT JOIN它把部门表关联进来并直接查询出dept_name。这个字段会被自动映射到SysEmployee的deptName属性上。#### 前端实现在Vue页面中我们只需要在表格列中使用deptName字段即可。ruoyi的代码生成器会自动处理关联查询的字段配置。vue!-- employee/index.vue --template el-table :dataemployeeList el-table-column propempId label员工ID width80 / el-table-column propempName label姓名 width120 / el-table-column propdeptName label所属部门 width150 / !-- 直接显示关联字段 -- !-- 其他列... -- /el-table/template这样当数据从后端返回时deptName已经包含了部门名称前端直接渲染即可。### 案例二多对多关联——用户与角色更复杂的场景是用户和角色的多对多关系。一个用户可以有多个角色在用户列表中需要显示所有角色的名称用逗号分隔。#### 后端实现在用户实体类中添加一个roleNames字段来存储角色名称的拼接字符串。java// SysUser.java 用户实体类public class SysUser extends BaseEntity { private static final long serialVersionUID 1L; Excel(name 用户编号) private Long userId; Excel(name 登录名称) private String loginName; Excel(name 用户姓名) private String userName; /** 角色名称关联显示多个角色用逗号分隔 */ Excel(name 角色) private String roleNames; // getters and setters...}然后编写关联查询的SQL。这里需要用到子查询或GROUP_CONCAT函数。xml!-- SysUserMapper.xml --select idselectUserList parameterTypeSysUser resultMapSysUserResult SELECT u.user_id, u.login_name, u.user_name, (SELECT GROUP_CONCAT(r.role_name SEPARATOR , ) FROM sys_user_role ur INNER JOIN sys_role r ON ur.role_id r.role_id WHERE ur.user_id u.user_id) AS role_names FROM sys_user u where if testuserName ! null and userName ! AND u.user_name LIKE CONCAT(%, #{userName}, %) /if /where/select这里使用GROUP_CONCAT将多个角色名合并成一个字符串并映射到roleNames字段。注意MySQL的GROUP_CONCAT默认长度限制如果角色名过长可能需要调整。#### 前端实现前端同样直接使用roleNames字段。vue!-- user/index.vue --template el-table :datauserList el-table-column propuserId label用户ID width80 / el-table-column proploginName label登录名 width120 / el-table-column propuserName label姓名 width120 / el-table-column proproleNames label角色 min-width200 / !-- 其他列... -- /el-table/template### 常见问题与优化1.性能问题关联查询可能会降低列表加载速度。对于大数据量建议在数据库层面建立合适的索引或者使用缓存如Redis存储关联数据。2.字段冲突如果两个表有同名字段如name在SQL中必须使用别名如d.dept_name AS deptName来区分。3.代码生成器配置ruoyi的代码生成器允许配置关联表。在生成代码时可以指定需要关联的表和显示字段这样生成的实体类、Mapper XML和前端页面都会自动包含关联逻辑。这是最省力的方式。4.数据权限如果关联表有数据权限要求需要在SQL中添加权限过滤条件比如只查询用户所在部门的部门名称。### 总结通过以上两个案例我们可以看到ruoyi-vue框架在处理列表关联显示时遵循了“后端SQL关联查询前端直接渲染”的模式。核心思路是在后端通过JOIN或子查询一次性获取所需字段然后映射到实体类的非数据库字段上前端只需简单绑定即可。这种方式避免了前端多次请求API也保持了数据的一致性。对于简单的关联显示如一对一、一对多使用LEFT JOIN是最直接的方法。对于多对多关系使用GROUP_CONCAT或子查询可以优雅地合并数据。ruoyi的代码生成器进一步简化了这一过程让开发者只需关注业务逻辑而不用重复编写关联代码。在实际项目中合理利用关联显示可以减少用户的操作步骤提升体验。但也要注意不要滥用避免一次查询加载过多关联数据导致页面卡顿。根据业务场景权衡性能和展示需求才是技术决策的关键。

相关新闻

一套开源、美观、高性能的跨平台 .NET MAUI 控件库,助力轻松构建美观且功能丰富的应用程序!

一套开源、美观、高性能的跨平台 .NET MAUI 控件库,助力轻松构建美观且功能丰富的应用程序!

一套开源、美观、高性能的跨平台 .NET MAUI 控件库,助力轻松构建美观且功能丰富的应用程序! 在移动端和桌面端应用开发领域,跨平台框架一直是技术选型的焦点。Microsoft 推出的 .NET MAUI(Multi-platform App UI)为开发…

2026/10/26 14:18:42 阅读更多 →
FanControl终极风扇控制指南:3分钟学会Windows风扇精准调校

FanControl终极风扇控制指南:3分钟学会Windows风扇精准调校

FanControl终极风扇控制指南:3分钟学会Windows风扇精准调校 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trendi…

2026/10/24 6:58:13 阅读更多 →
2026年AI视频生成核心技术解析与应用展望

2026年AI视频生成核心技术解析与应用展望

1. 智能内容创作的技术演进2016年DeepDream让我们第一次看到神经网络生成的图像,2022年Stable Diffusion让普通人也能创作专业级视觉内容。如今AI生成技术正以每18个月性能翻倍的速度进化,2026年的内容创作工具将彻底改变我们生产与消费数字内容的方式。…

2026/10/21 1:00:34 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/28 23:48:14 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/28 7:28:00 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/28 9:02:11 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/28 22:10:30 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/28 9:00:54 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/28 7:29:02 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 16:58:40 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 9:01:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 19:25:09 阅读更多 →