午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

Mybatis 級聯刪除的實現

瀏覽:144日期:2023-10-21 18:01:13

需求描述

今日需求是刪除資源時同時刪除與該資源綁定的角色數據,有兩張表,資源表、角色與資源綁定表,級聯刪除的時候有兩種方法:①建立表時直接建立約束,當父表刪除數據時數據庫會自動去刪除子表中的數據,②通過代碼實現級聯刪除,先刪除子表數據,然后刪除父表中的數據。

通過數據庫實現

可以參考博文://www.jb51.net/article/88148.htm

這種方式假如我們要刪除父表的數據,子表的數據就會被刪除,而我們的業務需求是表中是否刪除由is_delete字段來標識,所以這種方式是可以實現級聯表刪除的,但是不符合我們的需求,在此只提供一種這樣的思路。

通過代碼實現

先寫一個刪除資源和角色綁定的接口:

/** * 根據資源id刪除相關的角色資源綁定數據 * @param applicationIds 資源ids * @return 受影響行數 */ int deleteByApplicationId(List<String> applicationIds);

<delete id='deleteByApplicationId'> UPDATE tc_role_application SET is_delete =1 WHERE application_id IN ( <foreach collection='list' item='id' separator=','> #{id} </foreach> ) AND is_delete = 0 </delete>

寫一個刪除資源的接口:

int deleteByIds(@Param('list') List<String> var1, @Param('operator') String var2);

<delete id='deleteByIds'> update tc_application set is_delete = 1 , update_time=now() , operator = #{operator,jdbcType=VARCHAR} where id in ( <foreach collection='list' item='id' separator=','> #{id} </foreach> ) and is_delete = 0 </delete>

執行刪除時,先刪除子表數據,后刪除父表數據:

/** * 批量刪除資源并刪除其下相關的資源角色綁定數據 * @param ids 資源ids */ @Transactional(rollbackFor = Exception.class) @Override public void deleteApplicationByIds(List<String> ids) { String user = TenancyContext.UserID.get(); //先刪除資源角色表中資源和角色綁定的數據 roleApplicationService.deleteByApplicationId(ids); //刪除資源表數據 this.deleteByIds(ids, user); }

總結

根據需求和實際選擇合適自己的方法。

到此這篇關于Mybatis 級聯刪除的實現的文章就介紹到這了,更多相關Mybatis 級聯刪除內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 四虎国产精品永久在线国在线 | 鸥美一级片 | 久久免费少妇高潮久久精品99 | 337p亚洲精品色噜噜狠狠 | 99爱在线| 欧美性18 | 国产福利第一页 | 97视频免费看 | 91精品国产综合久久久久久 | 日韩黄大片 | 中国色视频 | 日韩资源网 | 中文有码在线播放 | 久久国产精 | 在线国产一区 | 91精品久久久久久粉嫩 | 国产 日韩 欧美 精品 | 成人在线h| 婷婷六月色 | av在线黄| 国产h视频在线 | 成人免费视频一区二区 | 在线国产一区二区三区 | 最近免费中文字幕 | 日韩欧美中文字幕在线视频 | 欧美精品日韩少妇 | 精品久久久久久一区二区里番 | 黄色片在线看 | 亚洲欧美综合在线观看 | 激情丁香| 国产免费视频一区二区三区 | 欧美亚洲视频在线观看 | 国内视频精品 | 涩涩99 | 在线免费观看成年人视频 | 亚洲国产中文字幕 | 99热这里是精品 | 伊人国产视频 | 国产精品网页 | 蜜挑成熟时在线观看 | 日本黄网站色大片免费观看 |