日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

@Version樂觀鎖配置mybatis-plus使用(version)

作者:小徐敲java 更新時間: 2024-04-05 編程語言

1:首先在實體類的屬性注解上使用@Version

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * @Description: 訪客數據
 * @Author: xqf
 * @Date:   2023-07-27
 * @Version: V1.0
 */
@Data
@TableName("sys_visitant_data")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="sys_visitant_data對象", description="訪客數據")
public class SysVisitantData {

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
	private String id;
	/**訪客openId*/
	@Excel(name = "訪客openId", width = 15)
	@ApiModelProperty(value = "訪客openId")
	private String visitantOpenId;
	@Version
	private Long version;
}

2:在數據庫表中添加version字段,注意實體類使用是long和int類型(和默認值為0)

在這里插入圖片描述

3:在mybatis-plus攔截器中添加OptimisticLockerInnerInterceptor()樂觀鎖攔截器

@Configuration
@MapperScan(value={"org.demo.modules.**.mapper*"})
public class MybatisConfig {
@Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor= new MybatisPlusInterceptor();
        //添加分頁攔截器
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        //添加樂觀鎖攔截器
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
}

4:demo(version字段版本會自動每次加一操作)

@PostMapping("/apply2")
    public Result<?> apply2() {
        SysVisitantData visitantData = sysVisitantDataService.getById("1724065295435689986");
        Integer visitantNumber = visitantData.getVisitantNumber();
        System.out.println("開始#2:" + visitantNumber);
        visitantData.setVisitantNumber(visitantNumber + 5);
        boolean flag = sysVisitantDataService.updateById(visitantData);
        if (!flag){
            throw new JeecgBootException("2保存失敗");
        }
        System.out.println("更新#2:" + visitantData.getVisitantNumber());
        return Result.OK();
    }

原文鏈接:https://blog.csdn.net/qq_19891197/article/details/134430159

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新