无限级菜单查询封装_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 无限级菜单查询封装

无限级菜单查询封装

 2013/8/10 3:21:29  a92575  程序员俱乐部  我要评论(0)
  • 摘要:--无限级菜单查询SELECTA.MENU_ID,--菜单IDLEVELASNODES,--菜单节点A.MENU_NAME,--菜单名称A.MENU_PAREDNT_ID,--菜单父IDA.MENU_URL,--菜单urlA.ORDER_NO--排序号FROM(SELECTB.MENU_ID,B.MENU_NAME,B.MENU_PAREDNT_ID,B.MENU_URL,B.ORDER_NOFROMMENUBWHERE1=1)ACONNECTBYA
  • 标签:菜单
-- 无限级菜单查询
  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;
    }
   }
  }
发表评论
用户名: 匿名