JAVA+Hibernate 무한 등급 분류

데이터베이스 구조:Create TABLE `admin_menu` ( `menu_id` int(4) NOT NULL auto_increment, `menu_name` varchar(50) default NULL, `parent_id` int(4) default '0', `menu_value` varchar(255) default NULL, `menu_sort` int(4) default '0', `menu_description` varchar(50) default NULL, `isvalid` tinyint(1) default '0', PRIMARY KEY (`menu_id`)주로 menuid 와 parentid 이 두 필드.Eclipse 에서 생 성 된 표 의 지속 적 인 맵:(설명:자신 이 level 속성 을 추가 하고 역할:종류 가 있 는 깊이 를 기록 하기 위해)Public class AdminMenu implements java.io.Serializable {     // Fields         private Integer menuId;      private String menuName;      private Integer parentId;      private String menuValue;      private Integer menuSort;      private String menuDescription;      private Short isvalid;      private int level;     // Constructors     /** default constructor */     public AdminMenu() {     } /** minimal constructor */     public AdminMenu(Integer menuId) {         this.menuId = menuId;     }     /** full constructor */     public AdminMenu(Integer menuId, String menuName, Integer parentId, String menuValue, Integer menuSort, String menuDescription, Short isvalid) {         this.menuId = menuId;         this.menuName = menuName;         this.parentId = parentId;         this.menuValue = menuValue;         this.menuSort = menuSort;         this.menuDescription = menuDescription;         this.isvalid = isvalid;     }         // Property accessors     public Integer getMenuId() {         return this.menuId;     }     public void setMenuId(Integer menuId) {         this.menuId = menuId;     }     public String getMenuName() {         return this.menuName;     }     public void setMenuName(String menuName) {         this.menuName = menuName;     }     public Integer getParentId() {         return this.parentId;     }     public void setParentId(Integer parentId) {         this.parentId = parentId;     }     public String getMenuValue() {         return this.menuValue;     }     public void setMenuValue(String menuValue) {         this.menuValue = menuValue;     }     public Integer getMenuSort() {         return this.menuSort;     }     public void setMenuSort(Integer menuSort) {         this.menuSort = menuSort;     }     public String getMenuDescription() {         return this.menuDescription;     }     public void setMenuDescription(String menuDescription) {         this.menuDescription = menuDescription;     }     public Short getIsvalid() {         return this.isvalid;     }     public void setIsvalid(Short isvalid) {         this.isvalid = isvalid;     } public int getLevel() {    return level; } public void setLevel(int level) {    this.level = level; } } /** * 관리자 메뉴 조회*  * @return */ public static AdminMenu[] selectAdminMenu(String condition) {    AdminMenu[] adminMenu = null;    String hql = "from AdminMenu as am" + condition;    List list = select(hql);    Object[] o = list.toArray();    if(o != null)    {     adminMenu = new AdminMenu[o.length];     for(int i = 0; i < o.length; i++)     {      adminMenu[i] = (AdminMenu)o[i];     }    }    return adminMenu; } /** * 트 리 생 성(주로 배열 로 재 귀적)*  * @return */ public static ArrayList getTree(AdminMenu[] menu, int parentId, int level, ArrayList list) {    for(int i = 0; i < menu.length; i++)    {     if(menu[i].getParentId().intValue() == parentId)     {      menu[i].setLevel(level);      list.add(menu[i]);      getTree(menu, menu[i].getMenuId(), level+1, list);     }    }    return list; }

좋은 웹페이지 즐겨찾기