JAVA+Hibernate 无限级分类

主要看menu_id和parent_id这两个字段。 Eclipse生成的表持久映射:(说明:自己加level属性,作用:为了记录种类所在深度)
 
数据库结构: 
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`) 


主要看menu_id和parent_id这两个字段。 
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; 
 
     
Java Spring boot项目实战微信点餐视频教程-某课网价值348元实战教程 attach_img
亿级流量电商详情页系统的大型高并发与高可用缓存架构实战(第一版+第二版) attach_img
【自动化测试】Selenium基于Java快速入门视频教程 13课 attach_img
selenium基于Java测试实战视频教程 18课 attach_img
selenium2基于Java与WebDriver视频教程 8课 attach_img
【自动化测试】selenium2基于Java入门到精通视频教程 11课 attach_img
Apache Mina网络通信架构视频教程 高可用网络应用程序开发Mina视频教程 attach_img
极速入门–Spring MVC、MyBatis、Shiro三大模块快速入门学习视频教程 attach_img
北风网ExtJS培训视频教程 ExtJS基础课程+ExtJS项目实战(两套)北风网ExtJS在线培训 attach_img
10个超经典的JAVA项目学习 从功能概述到模块设计与维护 外加美女讲师友情客串 attach_img
李兴华老师JAVA实战培训视频教程 JAVA开发实战李兴华60小时视频讲解 JAVA案例讲解 attach_img
JAVA编程思想配套视频教程 猎豹网校出品 高级部分 最终篇 attach_img
JAVA编程思想配套视频教程 猎豹网校出品 中级部分 attach_img
JAVA编程思想配套视频教程 猎豹网校出品 初级部分 attach_img
Java程序性能优化:让你的Java程序更快、更稳定 attach_img
分布式java应用基础与实践PDF电子书下载 attach_img
SpringMVC4实战 JAVA项目实战-SSM框架全套培训视频教程 动力节点 王勇老师力作 attach_img
JAVA项目实战-SSM框架全套培训视频教程-Spring4实战 动力节点 王勇老师力作 attach_img
JAVA项目实战-SSM框架全套培训视频教程-MyBatis3实战 动力节点 王勇老师力作 attach_img
JAVA项目实战-SSM框架全套培训视频教程-SSM入门前言 动力节点 王勇老师力作 attach_img
posted @ 2018-12-23 14:37  winifredfs  阅读(290)  评论(0编辑  收藏  举报