日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

SpringBoot 事務管理Transactional 數(shù)據(jù)回滾 數(shù)據(jù)一致性

作者:生產(chǎn)隊的驢. 更新時間: 2024-02-16 編程語言

SpringBoot 事務的屬性rollbackFor 與 propagetion

介紹

SpringBoot當中的事物他保證了一致性,要么全部一起成功(提交),要么一起失敗,失敗(回滾)后數(shù)據(jù)會回到當初的樣子,是一組操作的集合。

事物類型

  • 開啟事物
  • 提交事物
  • 回滾事物

案例

   @Override
    public void insert(Test t) {
        classesMapper.delete(1);//刪除班級
        int n =1/0;//這里會發(fā)送異常
        testMapper.delete(1);//根據(jù)班級刪除學生
    }

這是一個刪除數(shù)據(jù)的方法,先刪除班級,然后根據(jù)班級ID刪除班級下的學生,但是走到第二行“ int n =1/0;”這里就會拋出異常,而且刪除學生的方法并沒有被執(zhí)行,這樣就導致了數(shù)據(jù)不一致。這種情況就可以使用事物來操作,發(fā)生了異常就回滾到之前的數(shù)據(jù),保證了數(shù)據(jù)的完整性。要么一起成功,要么一起失敗。

開啟事物前置條件

表引擎必須為,InnoDB
前置條件

開啟事物

@Transactional 在方法上添加 ,這樣下來要么都刪除成功,如果發(fā)送異常兩個表的數(shù)據(jù)都不變化(回滾)。

開啟事物 -> 發(fā)送錯誤-》提交事物-》回滾事物

 @Override
    @Transactional //開啟事物
    public void insert()  {
            classesMapper.delete(1);//刪除班級
            int n =1/0;//這里會發(fā)送異常
            testMapper.delete(1);//根據(jù)班級刪除學生
    }

不同位置上添加

  • 方法上添加:當前這個方法開啟事物管理
  • 類上:類中所有的方法開啟事物管理
  • 接口上:接口所有實現(xiàn)類的方法交給事務管理

原文鏈接:https://blog.csdn.net/dpc5201314/article/details/136061064

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新