溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot項目事務標簽驗證問題怎么解決

發布時間:2022-04-02 16:04:21 來源:億速云 閱讀:188 作者:iii 欄目:移動開發

這篇文章主要講解了“springboot項目事務標簽驗證問題怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“springboot項目事務標簽驗證問題怎么解決”吧!

1、問題描述

springboot項目中配置事務,以前通過標簽用過,上個內部項目,因為是在別人代碼中使用了,發現好像沒起作用(然后因為有框架保證,就沒計較了),新啟動項目又用到,驗證了下,springboot項目下配置兩個標簽就可以了。

2、解決方案

2.1 說明

(1)其實就兩個標簽,一個用到啟動類中(@EnableTransactionManagement),另一個就是那里需要就配置到哪里(@Transactional);

(2)方案,就隨便找了個以前的測試項目,一個方法中包含:保存一條數據到數據庫中和一個1除以0代碼,然后看下加不加事務標簽有什么區別;

2.2 代碼說明

(1)controller類

@ResponseBody
    @GetMapping("/tstest")
    public String tstest() {
        this.userService.tstest();
        return "SUCCESS";
    }

(2)service類

public void tstest() {
        //保存
        UserEntity userEntity = new UserEntity();
        userEntity.setType(0);
        userEntity.setOpenid("1111");
        insert(userEntity);
	
				//報錯,回滾
        int i = 1/0;
        System.out.println(i);
    }

2.3 驗證1,沒有事務

不加事務標簽,代碼如上。

(1)先清空數據庫;

(2)執行tstest請求;

springboot項目事務標簽驗證問題怎么解決

發現insert代碼行執行完,數據就存到數據庫中了。

springboot項目事務標簽驗證問題怎么解決

接著執行完成(1/0),雖然報錯代碼報錯,但是數據庫中數據還是存在的,數據沒有回滾,沒有保持一致性。

springboot項目事務標簽驗證問題怎么解決

2.4 驗證2,有事務

(1)增加兩個標簽,一個是啟動類方法上,一個是tstest方法上。

springboot項目事務標簽驗證問題怎么解決

springboot項目事務標簽驗證問題怎么解決

(2)首先清除數據,執行到insert處

springboot項目事務標簽驗證問題怎么解決

發現雖然insert代碼行執行完成了,但是這時候數據庫中并沒有數據,然后執行完,代碼報錯,數據回滾,數據庫中并沒有存入數據,說明事務起到到該有的作用,數據回滾了。

springboot項目事務標簽驗證問題怎么解決

感謝各位的閱讀,以上就是“springboot項目事務標簽驗證問題怎么解決”的內容了,經過本文的學習后,相信大家對springboot項目事務標簽驗證問題怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女