无限级菜单查询封装

1 篇文章 0 订阅
-- 无限级菜单查询
SELECT A.MENU_ID, --菜单ID
LEVEL AS NODES, --菜单节点
A.MENU_NAME, --菜单名称
A.MENU_PAREDNT_ID,--菜单父ID
A.MENU_URL, --菜单url
A.ORDER_NO --排序号
FROM (SELECT B.MENU_ID,
B.MENU_NAME,
B.MENU_PAREDNT_ID,
B.MENU_URL,
B.ORDER_NO
FROM MENU B
WHERE 1 = 1) A
CONNECT BY A.MENU_PAREDNT_ID = PRIOR A.MENU_ID
START WITH A.MENU_PAREDNT_ID IS NULL


List returnList = "" // 这个list是通过SQL查询出来的结果集
List oneList = new ArrayList(); // 一级菜单List
Map twoMap = new HashMap(); // 二级菜单MAP
Map threeMap = new HashMap(); // 三级菜单MAP

// 封装成一个三级菜单的集合MAP
for (Object object : returnList) {
LazyDynaBean bean = (LazyDynaBean)object;
if ("1".equals(ObjectUtils.toString(bean.get("NODES")))){ // 判断该节点是否一级菜单
oneList.add(bean.getMap());
} else if ("2".equals(ObjectUtils.toString(bean.get("NODES")))) { // 判断该节点是否二级菜单
List tempList = (List)twoMap.get(ObjectUtils.toString(bean.get("MENU_PAREDNT_ID")));
if(tempList == null){
tempList = new ArrayList();
}
tempList.add(bean.getMap());
twoMap.put(ObjectUtils.toString(bean.get("MENU_PAREDNT_ID")), tempList);
} else if ("3".equals(ObjectUtils.toString(bean.get("NODES")))) {// 判断该节点是否三级菜单
List tempList = (List)threeMap.get(ObjectUtils.toString(bean.get("MENU_PAREDNT_ID")));
if(tempList == null){
tempList = new ArrayList();
}
tempList.add(bean.getMap());
threeMap.put(ObjectUtils.toString(bean.get("MENU_PAREDNT_ID")), tempList);
}
}

// 解析封装的数据
for(Object object : oneList) { // 一级菜单
Map oneMapNodes = (Map)object;
List twoListNodes = (List)twoMap.get(oneMapNodes.get("MENU_ID"));
if (twoListNodes!=null && twoListNodes.size()>0) {
for (Object twoobject : twoListNodes) { // 二级菜单
Map twoMapNodes= (Map)twoobject;
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值