Mybatis-plus中樂觀鎖的實現

樂觀鎖就是ta比較樂觀,覺得怎麼操作都不會出問題,ta幹什麼都不會加鎖,如果一旦出現了問題呢,ta就會再次更新值進行測試。樂觀鎖假設數據一般情況下不會造成衝突,所以在數據進行提交更新的時候,纔會正式對數據的衝突與否進行檢測,如果發現衝突了,則返回給用戶錯誤的信息,讓用戶決定如何去做。效率相對來說比較高~

樂觀鎖實現方式:
1.取出記錄時,獲取當前version
2.更新時,帶上這個version
3.執行更新時, set version = newVersion where version = oldVersion
4.如果version不對,就更新失敗

測試:
在這裏插入圖片描述
給數據庫增加一個version字段,默認是1 上面的數據是我修改過的了~
然後給對應的實體類也加上這個字段
在這裏插入圖片描述
註冊組件:編寫一個配置類

@MapperScan("cn.qisui.mapper")
@EnableTransactionManagement  //開啓事務
@Configuration   //配置類
public class MyBatisPlusConfig {
    //註冊樂觀鎖插件
    
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor(){
        return new OptimisticLockerInterceptor();
    }
}

test

    @Test
    public void testOptimisticLocker(){
        //查詢用戶的信息
        User user = userMapper.selectById(2L);
        //修改用戶的信息
        user.setName("丁七歲");
        user.setEmail("[email protected]");
        //執行更新的操作
        userMapper.updateById(user);
    }

在這裏插入圖片描述
在這裏插入圖片描述
完成~~~

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