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

學(xué)無(wú)先后,達(dá)者為師

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

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

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

SpringBoot 事務(wù)的屬性rollbackFor 與 propagetion

介紹

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

事物類型

  • 開(kāi)啟事物
  • 提交事物
  • 回滾事物

案例

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

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

開(kāi)啟事物前置條件

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

開(kāi)啟事物

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

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

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

不同位置上添加

  • 方法上添加:當(dāng)前這個(gè)方法開(kāi)啟事物管理
  • 類上:類中所有的方法開(kāi)啟事物管理
  • 接口上:接口所有實(shí)現(xiàn)類的方法交給事務(wù)管理

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

  • 上一篇:沒(méi)有了
  • 下一篇:沒(méi)有了
欄目分類
最近更新