基於SpringJDBC的事務(Transaction)處理



事務可以保障同一個業務中的多次對數據的寫操作全部成功,或全部失敗,以此保障數據安全。

所以,某個業務中有超過1次的增/刪/改操作,就必須使用事務,例如某個業務中有2次Update操作,或者1次Update加上1次Delete操作,甚至3次Update操作等。

在使用了SpringJDBC后,如果需要使用事務保障數據安全,只需要在業務方法之前添加`@Transactional`注解即可。

在SpringJDBC中,事務的操作大致是:

    開啟事務:begin
    try {
        執行數據操作,增/改/刪
        提交事務:commit
    } catch (RuntimeException e) {
        回滾事務:rollback
    }

也就是說,當框架以事務的方式執行業務時,將開啟事務,如果能正常執行結束,則提交事務,如果執行過程中捕獲到`RuntimeException`,則會自動回滾。

`@Transactional`注解還可以添加在業務類之前,則表示該業務類中所有業務方法都是以事務的方式來執行,通常並不推薦這樣處理,不必要的事務對QPS有負面影響。

還可以在注解中配置`rollbackFor`來確定捕獲哪些異常時才會自動回滾事務,例如:

    @Transactional(rollbackFor=ServiceException.class)

 

小結:如果某個業務中涉及多次增/刪/改,則在業務方法之前添加`@Transactional`注解,並且,在視為錯誤的操作過程中,必須拋出`RuntimeException`或其子孫類異常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM