主要适用场景
当要更新一条记录的时候,希望这条记录没有被别人更新
乐观锁实现方式:
- 取出记录时,获取当前version
- 更新时,带上这个version
- 执行更新时, set version = newVersion where version = oldVersion
- 如果version不对,就更新失败
插件配置
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor(); }
这里所说的配置是springBoot中的配置
注解实体字段
需要为实体字段添加@Version注解。
第一步,为表添加version字段,并且设置初始值为1
ALTER TABLE `tb_user` ADD COLUMN `version`
int(10) NULL AFTER `email`;
UPDATE `tb_user` SET `version`='1';
第二步,为User实体对象添加version字段,并且添加@Version注解:
@Version
private Integer version;
这样,就完成了mybatisplus中乐观锁的配置。