乐观锁实现方式:
1.取出记录时,获取当前version
2.更新时,带上这个version
3.执行更新时, set version = newVersion where version = oldVersion
4.如果version不对,就更新失败
这让我想起了Java中的一个关键字volatile
使用方法第一步
字段上加上
@Version注解
@Version
private Integer version;
支持的数据类型只有:
int,
Integer,
long,
Long,
Date,Timestamp,
LocalDateTime
使用第二部
注册组件
// Spring Boot 方式
@Configuration
@MapperScan("按需修改")
public class MybatisPlusConfig {
/**
* 旧版
* Optimistic乐观
* 注册乐观锁插件
*/
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
/**
* 新版
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return mybatisPlusInterceptor;
}
}