public interface MenuDao {
/**
-
根据父类id查询子类菜单
-
@param pid
-
@return
*/
List
/**
-
查询所有的菜单
-
@return
*/
List
/**
-
查询除了一级菜单以外的菜单
-
@return
*/
List
}
复制代码
- mapper文件
SELECT * FROM menu WHERE pid=#{pid}
SELECT * FROM menu
SELECT * FROM menu where pid!= 0
复制代码
- Controller层(由于是查询操作,并且没有复杂的操作,偷个懒就不写service层)
@RestController
@RequestMapping(“mymenu”)
public class MenuController {
@Autowired
private MenuDao menuDao;
@RequestMapping(“/getMenuTree”)
public List
List
List
for (Menu menu : menusBase) {
List
menu.setMenuChildren(menus);
}
return menusBase;
}
/**
*多级菜单查询方法
-
@param menuVoList 不包含最高层次菜单的菜单集合
-
@param pid 父类id
-
@return
*/
public List
List
for (Menu menu : menuVoList) {
//获取菜单的id
String menuid = menu.getId();
//获取菜单的父id
String parentid = menu.getPid();
if(StringUtils.isNotBlank(parentid)){
if(parentid.equals(pid)){
//递归查询当前子菜单的子菜单
List
menu.setMenuChildren(iterateMenu);
result.add(menu);
}
}
}
return result;
}
}
复制代码
- 启动程序用postman进行测试:
返回的json数据如下:
[
{
“id”: “1”,
“name”: “主菜单1”,
“pid”: “0”,
“menuChildren”: [
{
“id”: “4”,
“name”: “子菜单1.1”,
“pid”: “1”,
“menuChildren”: [
{
“id”: “6”,
“name”: “子菜单1.1.1”,
“pid”: “4”,
“menuChildren”: []
},
{
“id”: “9”,
“name”: “子菜单1.1.2”,
“pid”: “4”,
“menuChildren”: []
}
]
},
{
“id”: “5”,
“name”: “子菜单1.2”,
“pid”: “1”,
“menuChildren”: []
}
]
},
{
“id”: “2”,
“name”: “主菜单2”,
“pid”: “0”,
“menuChildren”: [
{
“id”: “7”,
“name”: “子菜单2.1”,
“pid”: “2”,
“menuChildren”: []
},
{
“id”: “8”,
“name”: “子菜单2.2”,
“pid”: “2”,
“menuChildren”: []
}
]
},
{
“id”: “3”,
“name”: “主菜单3”,
“pid”: “0”,
“menuChildren”: []
}
]
最后
面试是跳槽涨薪最直接有效的方式,马上金九银十来了,各位做好面试造飞机,工作拧螺丝的准备了吗?
掌握了这些知识点,面试时在候选人中又可以夺目不少,暴击9999点。机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。
加入社区:https://bbs.youkuaiyun.com/forums/4304bb5a486d4c3ab8389e65ecb71ac0
主菜单3",
“pid”: “0”,
“menuChildren”: []
}
]
最后
面试是跳槽涨薪最直接有效的方式,马上金九银十来了,各位做好面试造飞机,工作拧螺丝的准备了吗?
掌握了这些知识点,面试时在候选人中又可以夺目不少,暴击9999点。机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。
[外链图片转存中…(img-bwv5dXfN-1725473011335)]
[外链图片转存中…(img-s8i5XwWX-1725473011336)]
加入社区:https://bbs.youkuaiyun.com/forums/4304bb5a486d4c3ab8389e65ecb71ac0