java 一次查询数据库生成树形结构

原文链接: https://blog.csdn.net/suhongliang/article/details/86684787

代码实现如下:

@Override
public ResultObj getMenu() throws Exception {
    MenuDomain resultMenuDomain = new MenuDomain();
    List<MenuDomain> allMenu = menuDao.getMenu();
    //目录无限制
    for (MenuDomain menuItem : allMenu) {
        //第一层
        if (menuItem.getPid() == 0) {
            resultMenuDomain = menuItem;
            resultMenuDomain.setList(this.getSonMenuList(menuItem.getId(),allMenu));
        }
    }
    ResultObj resultObj = new ResultObj();
    return resultObj;
}

private List<MenuDomain> getSonMenuList(Integer id ,List<MenuDomain> allMenu) {
    List<MenuDomain> listvo = new ArrayList<>();
    for (MenuDomain menuItem : allMenu) {
        if (menuItem.getPid() == id) {//找到父级相同的下级
            listvo.add(menuItem);
        }
    }
    if(listvo.size() > 0){
        for(MenuDomain vo:listvo){
            vo.setList(getSonMenuList(vo.getId(),allMenu));
        }
    }
    return listvo;
}

猜你喜欢

转载自blog.csdn.net/qq_40312909/article/details/102686632