springboot中的事務註解

在spring中使用@Transactional註解來標誌類或者方法爲事務,@Transactional註解的函數內容要麼全部執行,要麼全部不執行。使其具有事務院子原子性

//刪除用戶
    @Transactional              //事務註解,代表方法內的操作是一個事務,如果其中一步失敗則回滾=======>mysql數據庫要用innodb引擎
    public int delete(int userId) {
        orderMapper.deleteByUserId(userId);         //根據用戶ID刪除訂單
        userInfoMapper.deleteByUserId(userId);      //根據用戶ID刪除用戶信息
        userCollectionMapper.deleteByUserId(userId);//根據用戶ID刪除用戶收藏
        return userMapper.deleteByPrimaryKey(userId);//根據用戶ID刪除用戶
    }

以上代碼加了註解,所以刪除用戶的時候如果正常執行會將刪除用戶有關的所有數據

如果不加事務註解,則可能在刪除了用戶,但是用戶信息或者用戶收藏或訂單數據還存在。數據不完整

注:mysql數據庫需要innoDB引擎   否則可能無法體現事務性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章