Mybatis(六)--级联删除

本文介绍了在Mybatis中实现级联删除的两种方法:通过数据库建立约束和通过代码操作。由于业务需求,不适合直接使用数据库级的级联删除,而是通过先删除子表数据,再删除父表数据的代码实现方式进行了详细说明。
摘要由CSDN通过智能技术生成

强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan

需求描述

      今日需求是删除资源时同时删除与该资源绑定的角色数据,有两张表,资源表、角色与资源绑定表,级联删除的时候有两种方法:①建立表时直接建立约束,当父表删除数据时数据库会自动去删除子表中的数据,②通过代码实现级联删除,先删除子表数据,然后删除父表中的数据。

通过数据库实现

     可以参考博文:MySQL使用外键实现级联删除与更新的方法_Mysql_脚本之家

     这种方式假如我们要删除父表的数据,子表的数据就会被删除,而我们的业务需求是表中是否删除由is_delete字段来标识,所以这种方式是可以实现级联表删除的,但是不符合我们的需求,在此只提供一种这样的思路。

通过代码实现

    先写一个删除资源和角色绑定的接口:

/**
     * 根据资源id删除相关的角色资源绑定数据
     * @param applicationIds 资源ids
     * @return 受影响行数
     */
    int deleteByApplicationId(List<String> applicationIds);
<delete id="deleteByApplicationId">
       
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值