Pytest 系列(26)- 清空 allure 歷史報告記錄
阿新 • • 發佈:2020-10-28
mybatisplus樂觀鎖
樂觀鎖 : 故名思意十分樂觀,它總是認為不會出現問題,無論幹什麼不去上鎖!如果出現了問題,再次更新值測試
悲觀鎖:故名思意十分悲觀,它總是認為總是出現問題,無論幹什麼都會上鎖!再去操作!
樂觀鎖實現機制:
- 取出記錄時,獲取當前 version
- 更新時,帶上這個version
- 執行更新時, set version = newVersion where version = oldVersion
- 如果version不對,就更新失敗
樂觀鎖:1、先查詢,獲得版本號 version = 1 -- A update user set name = "kuangshen", version = version + 1 where id = 2 and version = 1 -- B 執行緒搶先完成,這個時候 version = 2,會導致 A 修改失敗! update user set name = "kuangshen", version = version + 1 where id = 2 and version = 1
mybatisplus樂觀鎖實現案例
-
給資料庫增加version欄位
-
實體類加對應欄位
@Version //樂觀鎖Version註解 private Integer version;
-
編寫配置類,註冊元件
@MapperScan("com.kuang.mapper")// 掃描我們的 mapper 資料夾 @EnableTransactionManagement //開啟事務控制 @Configuration // 配置類 public class MyBatisPlusConfig { // 註冊樂觀鎖外掛 @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } }