查询菜单树的方法

7、springboot3 vue3开发平台-后端-获取用户菜单,构建菜单树列表 从用户session 中获取用户信息。递归构建列表树 阅读详情
菜单树

以查询部门为例,查询的部门的所在菜单,有它的父级菜单和子级菜单,要求通过部门id直接查询该部门所在的部门菜单树
以Springboot为例子,该篇为学习笔记

/**根据部门id查询部门树**/
/**自定义的Service可自定义端口,这里我定义的部门树接口是DeptTree**/
@Service("DeptTree")
public List<Ztree> selectDept(Dept dept,SqlSession sqlSession) throws Exception{
	/**查询前先给菜单树为空**/
	List<Ztree> ztrees = null;
	/**这里设置两个断言,dept和CommunityId是必传字段不能为空**/
	Assert.notNull(dept,"部门不可为空");
	Assert.notNull(dept.getCommunityId(),"小区id不可为空");
	try{
		/**打印前端传递来的参数**/
		logger.info("开始查询菜单树,请求参数:{}",dept);
		/**定义部门树集合,将DeptMapper下的属性放在list中**/
		List<Dept> deptList = sqlSession.getMapper(DeptMapper.class).list(dept);
		/**将放了属性的部门集合交给树**/
		ztrees = initZtree(deptList);
	}catch(Exception e){
		logger.error("出现异常",e);
		throw new Exception(CommConstant.ERROR_CODE,"查询菜单树异常");
	}
	return ztrees;
}
/**对象转部门树**/
private List<Ztree> initZtree(List<Dept> deptList){
	List<Ztree> ztrees = new ArrayList<>();
	for(Dept dept : deptList){
		if(CommConstant.TATA_ACTIV_FALG.equals(dept.getStatusCd())){
			Ztree ztrees  = new Ztree();
			/**在这里将获取的dept中的属性get出来放进新的部门树ztrees中**/
			ztree.setId(dept.getDeptId());
			ztree.setpId(dept.getParentId());  
			ztree.setName(dept.getName());  
			ztree.setTitle(dept.getLevel());  
			/**添加菜单树**/
			ztrees.add(ztree)   
		}
	}
	return ztrees;
}

mybatis递归查询菜单树 这是一个springboot架构搭建的一个整合mybatis递归查询的demo,其中整合了分布式事物jta,mybatis的分页插件等 立即下载

相关推荐

win11重装系统简易教程-小白也可以上手!

本文介绍一下win11系统重装的各个步骤,也作为记录供自己后面查看。附上我之前参考的一位知乎大神写的重装win10系统文章的地址本文用到的工具全部是,不需要下载第三方镜像文件(不是说这个不好,只是第三方的软件或镜像文件网上非常多,琳琅满目,小白需要筛选甄别,直接用官方的就比较省心,大神请自便~)

Sddqa的博客 1万+

Mybatis之高级映射collection (递归查出树形数据之查询部门及部门下所有人员 单节点)

第一步:创建树形数据Beanpublic class DeptTree { private String id; private String name; private List childrenList;//当前部门下的子部门集合 private String type="0";//type=0 表示是部门;type=1 表示是人员 p

记录程序的点点滴滴! 1万+

Windows 11 + AMD 780M 运行 ComfyUI 完整指南:DirectML 实战方案

ComfyUI 是基于 PyTorch 的 Stable Diffusion 可视化工作流工具,其性能高度依赖 GPU 后端支持。在 Windows 平台,传统 CUDA 方案仅适配 NVIDIA 显卡,而 AMD 核显用户长期面临 ROCm 兼容性差、驱动链路断裂等系统级障碍。DirectML 作为微软原生机器学习 API,绕过 ROCm 生态断层,直接对接 DirectX 12 硬件抽象层,成为 RDNA 3 架构(如 Radeon 780M)在 Windows 11 上运行 AI 绘画的最优解。它提供

weixin_30099989的博客 727

(记录贴)java后台实现树形菜单+分页返回数据

问题介绍 这几天做一个功能,也是第一次做树形菜单+分页的功能,觉得挺有意思,记录一下,可以大致看看原型图,要做成什么样子,如下图,要求能分页显示树形菜单。 第一版 Controller层调用一个递归方法getChild(),传参数0进去,数据库中我parent_id设置为0表示最上级,相当于树的根节点,这里传一个0,就可以获取到树的所有结构。 List<RoadPatrolReportConfigVO> reportConfigResults = getChild(0L);//递归获取子节点,

小样yx的博客 4551

强化学习-动态规划

动态规划(dynamic programming)是程序设计算法中非常重要的内容,能够高效解决一些经典问题,例如背包问题和最短路径规划。动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。动态规划会保存已解决的子问题的答案,在求解目标问题的过程中,需要这些子问题答案时就可以直接利用,避免重复计算。本章介绍如何用动态规划的思想来求解在马尔可夫决策过程中的最优策略。

qq_45481856的博客 2113

CMAC算法原理

2、K1 通过以下运算导出:若 L 的最高有效位等于 0,则 K1 是 L 的左移 1 位。3、K2 通过如下运算导出:若 K1 的最高有效位等于 0,则 K2 是 K1 的左移 1 位。采用了 AES 算法中的类似 CBC 模式的加密方式,即对前一个分组的密文与当前分组的明文进行异或操作后在加密,2、分块处理:首先将消息分成多个固定长度的块,若消息长度不是块大小的倍数,则可以使用填充来将其填充到合适的大小。1、子密钥计算,通过主密钥生成子密钥(key1,key2),子密钥用于最后一个块处理;

sky的博客 1658

JAVA查询菜单树形结构

1.创建最简单的菜单数据结构 SET FOREIGN_KEY_CHECKS=0; – Table structure for t_menu DROP TABLE IF EXISTS t_menu; CREATE TABLE t_menu ( id int(20) NOT NULL AUTO_INCREMENT COMMENT ‘菜单id’, name varchar(255) DEFAULT NULL COMMENT ‘菜单名称’, icon varchar(255) DEFAULT NULL COM

qq_43410909的博客 1561

从零到一:高通Memory QMVS测试环境搭建的避坑指南

本文详细介绍了高通Memory QMVS测试环境搭建的全流程避坑指南,涵盖硬件选择、软件配置、QMVS核心组件安装及测试执行技巧。重点解析了adb工具配置、QPST日志抓取等关键步骤,帮助工程师高效搭建稳定测试环境,避免常见兼容性和稳定性问题。

weixin_29251567的博客 555

Java之使用递归查询多级树形结构数据(多级菜单),包括查询父级菜单

Java之使用递归查询多级树形结构数据(多级菜单),包括查询父级菜单

qq_19891197的博客 1435

数字电路实验避坑指南:如何正确搭建主从JK触发器测试电路(附Proteus仿真)

本文详细解析了主从JK触发器的工作原理及实验搭建指南,重点解决了常见的Catching Problem现象,并提供了Proteus仿真优化方案。通过元器件选型、电路连接步骤和常见错误排查,帮助读者正确搭建测试电路,确保数字电路实验的稳定性和可靠性。

weixin_30790841的博客 469

NSIS教程(6): 使用第三方插件

NSIS内置了很多指令,这些指令可以满足我们基本需求,但难免会遇到NSIS没有内置的功能,如进程操作,后台运行(即多线程),7z压缩等等,这个时候我们就需要借助第三方插件来满足我们所需要的功能了。 一、插件获取 NSIS官方收录插件的网址是:http://nsis.sourceforge.net/Category:Plugins,我们可以在这个网站上查找和下载我们需要的插件,该网站上针对每

while(1) { smile(); } 9万+

多级菜单(树形结构)-查询和删除(递归)

2、仅有一级菜单和二级菜单(利用嵌套的方法)(代码冗余) 3、多级菜单 3、1(利用嵌套,在2的基础上,多层嵌套) 3、2(利用递归) 4、多级菜单递归删除 多级菜单递归删除

雨声学java 3473

简单VASP计算INCAR设置(结构优化OPT、静态自洽SCF、能带BAND、态密度DOS)

改变 K 点、NBANDS、晶胞、ENCUT、POTCAR、自旋或 SOC 后要检查兼容性。该参数不参与物理计算,因此不会改变总能量、受力、应力或最终结构。如果研究的是金属、磁性材料、表面、二维材料、分子、缺陷、DFT+U、杂化泛函或强自旋轨道耦合体系,部分参数必须调整。适合已经用 IBRION = 2 预优化、力较小、自由度较多的结构。在 IBRION = 1、2、3 中,它只是内部缩放因子。“不能修改”不是程序禁止修改,而是修改后会改变理论模型、数值精度或能量参考,使结果不能直接比较。

weixin_51420530的博客 124

Mybatis通过collection递归查询菜单树的实现方法

在业务开发中我们可能会遇到菜单树的查询之类的需求,即实体中包含本实体的list或数组,层数不定,下面为借助Mybatis的collection的一种方法 现有表结构如下 domain如下 package tech.niua.auth.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomid.

CodeXu-cyber的博客 1978

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

后端返回菜单树

【代码】后端返回菜单树。

Hbb123654的博客 426

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java后台生成菜单树一次查询

java后台生成菜单树一次查询 /** * 通过集合方式生成树 * @param list * @return */ public static Map<String, List<SysMenusVo>> getTreeByColl(List<SysMenusVo> list) { Map<String, List<SysMenusVo>> resmap=new HashMap&lt

shuaigg001的博客 454

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java从数据库读取菜单,递归生成菜单树

java从数据库读取菜单,递归生成菜单树

程高伟 7万+

菜单树

菜单树的实现 1) 数据部分(dao,service) 如果菜单的数据量比较大,可以分多次查询 第一次查询一级菜单,之后点击哪个一级菜单再去查询相应的二级菜单 如果菜单的数据量比较小,可以一次全部查询出来 要点:使用map集合建立菜单节点之间的父子关系,提高效率 2) 展现部分 用了一套css框架 bootstrap 要点:找出页面中html的规律,使用标签和el表达式改写原有静态...

sinat_42759524的博客 996

MyBatis实现递归获得树形结构的数据(1,菜单树,2,组织树)

场景优化:(1)递归菜单树结果放到缓存中,进入页面时直接展示: 如上图:展示这样的目录树或者菜单树或者组织树等场景

天涯芳草 1347

003 Lambda递归查询所有菜单树

Lambda递归查询所有菜单树 /** * 查询所有菜单树 * JDK1.8 */ private List<MenuEntity> getMenuTreeList(List<MenuEntity> menuList,String pid) { // 查找所有菜单 List<MenuEntity> childrenList = new Ar...

Matea's Record 1254

查询菜单树的代码

@Override public List<ChainLengthBasic> selectAllListByParentId(ChainLengthBasic chainLengthBasic) { String hql="from ChainLengthBasic c where c.parentId=?"; String parentId=chainLengthBasic.getParentId(); List<ChainLe.

qq_50730205的博客 166

菜单递归管理

实体类 @ApiModel(description = "菜单") public class Menu { @ApiModelProperty("id") private String id; @ApiModelProperty("父菜单id") private String parentId; @ApiModelProperty("菜单名称") private String menuName; @ApiModelProperty("菜单链接"

monkey的博客 143

递归查询菜单树代码详解

如何做一个菜单树? 1.前端处理 这样对后端开发人员来说是非常简单的,select * from xxx ,一句sql 解决问题,而且减少了后端程序处理的时间。 2.后端处理 ​ 1)方式一:树节点是有限的,不需要做增加或者删除,或者说就是一个死的树型菜单,而且呢菜单节点不超过3级,后端处理方式可以查出来一级一级封装,这样需要查询数据库最多三次,对于后端人员来说也是比较简单的。 2)方式二:通过递归方式来查询树型菜单,可以动态修改树,这也是比较常用的方式,但是呢,比较复杂,对后端开发人员要求较高。那今天就来

qq_41630045的博客 490

java递归查询树形结构数据——实现前端页面的动态菜单树,机构数等

这里只希望起到一个抛砖引玉的作用,其他高大上的实现还需具体情况具体分析。 以菜单树为例 如下是数据库表的数据: 首先查询出所有的菜单数据,调用createMenu方法将数据传入; public List createMenu(List&lt;mp01_menu&gt; mp01_menus) {             ArrayList&lt;mp01_menu&gt; rootMe...

六年鹿苑的博客 2882

生成 jqueryeasy UL Li嵌套的菜单树

/* * $node查询数据库之后的结果集 * $cen循环到第几层 * $pid父级的id,第一级的父级默认为0 *目的:生成UL Li嵌套的菜单树 */ private function mergeTree($node,...

reg183的专栏 56

mybatis递归查询

mybatis递归生成菜单树 返回的bean @Data @AllArgsConstructor @NoArgsConstructor public class VoMenu { private int id; private String name; private String url; private String pid; private...

qq_39015306的博客 354
上一篇: throw 和 throws 的区别
下一篇: java将数据同时插入到两张表中
长安不野
博客等级 码龄6年 83粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值