1. 程式人生 > 實用技巧 >谷歌json和物件轉換

谷歌json和物件轉換

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();
        } 
    }