java Srvice层实现递归删除菜单的功能
时间: 2024-03-22 22:40:09 浏览: 45
基于ssm框架+layui的汽车租赁管理系统项目源码+数据库+项目说明.zip
假设菜单的数据结构如下:
```java
public class Menu {
private Integer id;
private String name;
private Integer parentId;
// 省略getter/setter
}
```
Service层实现递归删除菜单的功能,可以采用如下代码:
```java
@Service
public class MenuService {
@Autowired
private MenuMapper menuMapper;
/**
* 递归删除菜单
* @param id 菜单ID
*/
public void deleteMenu(Integer id) {
// 获取该菜单的所有子菜单
List<Menu> childMenus = menuMapper.selectByParentId(id);
if (childMenus != null && !childMenus.isEmpty()) {
// 如果存在子菜单,则递归删除子菜单
for (Menu childMenu : childMenus) {
deleteMenu(childMenu.getId());
}
}
// 删除该菜单
menuMapper.deleteById(id);
}
}
```
在递归删除菜单的过程中,首先根据菜单ID查询其所有子菜单,如果存在子菜单,则递归调用deleteMenu()方法删除子菜单,最后再删除该菜单。这样就可以实现递归删除菜单的功能了。
阅读全文