SpringBoot +LayUI+thymeleaf 实现一个功能(五) 删除

功能说明
删除时应该删除子节点,有两个方式:1.通过一条SQL语句进行删除 2.执行两个删除语句。
数据源增加 &allowMultiQueries=true
在这里插入图片描述
JAVA 后端
dao

void deleteDeptById(int id);

mapper

<!--删除操作 根据id删除节点以及下面的子节点-->
    <delete id="deleteDeptById" parameterType="int">
            delete from dept where id=#{id} or id in (SELECT t3.id FROM
	( SELECT *, IF (find_in_set(t1.parent_Id, @p) >0,@p:= concat(@p,',',id),0) AS childId FROM
			(SELECT id,parent_Id FROM 	dept t 	 	ORDER BY id) t1,
    (SELECT @p:= #{id} ) t2 ) t3 WHERE	childId != 0) ;
    </delete>

service
接口

void deleteDeptById(int id);

实现

@Override
    public void deleteDeptById(int id) {
    
    
        iDeptDao.deleteDeptById(id);
    }

控制层

@RequestMapping("dept/deleteDeptByID")
    @ResponseBody
    public R deleteDeptByID(int id){
    
    
        deptService.deleteDeptById(id);
        return R.ok();
    }

前端
在这里插入图片描述

测试
在这里插入图片描述
后记
因为涉及多层树,所以删除SQL语句还是需要多熟悉一下。

猜你喜欢

转载自blog.csdn.net/weixin_44690195/article/details/108390076