MyBatis-Plus樂觀鎖

一、主要適用場景
意圖:
當要更新一條記錄的時候,希望這條記錄沒有被別人更新

樂觀鎖實現方式:

取出記錄時,獲取當前version
更新時,帶上這個version
執行更新時, set version = newVersion where version = oldVersion
如果version不對,就更新失敗

二、註解實體字段 @Version 必須要!
@Version
private Integer version;
特別說明:

支持的數據類型只有:int,Integer,long,Long,Date,Timestamp,LocalDateTime
整數類型下 newVersion = oldVersion + 1
newVersion 會回寫到 entity 中
僅支持 updateById(id) 與 update(entity, wrapper) 方法
在 update(entity, wrapper) 方法下, wrapper 不能複用!!!
三、配置

<bean class="com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor"></bean>@Bean
    public OptimisticLockerInterceptor optimisticLoker() {
        return new OptimisticLockerInterceptor();
    }

四、案例

  @RequestMapping("/upd2")
    public void upd2() {
        User user=new User();
        user.setId(13L);
        user.setName("張洋小朋友");
        user.setAge(13);
        user.setVersion(1);
        if(  userMapper.updateById(user)>0){
            System.err.println("更新成功");
        }
        else {
            System.err.println("被其他人更新");
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章