乐观锁
为了解决 丢失更新问题
如果不考虑事务隔离性 会产生读问题: 脏读 不可重复读 幻读
丢失更新:
多人同时修改同一条记录,最后提交的把之前的提交数据覆盖
解决方案:
悲观锁:
串行,
乐观锁:例如:12306购票
(1)在数据库中添加version字段
ALTER TABLE 'table' ADD COLUMN 'version' INT
(2)在实体类添加version字段对应属性
并添加@Version注解
@Version
private Integer version
可以添加@TableFiled(fill=FieldFill.INSERT)赋予初始值(方法参照上一篇博客)
@Version
@TableFiled(fill=FieldFill.INSERT)
private Integer version
(3)配置乐观锁插件
// Spring Boot 方式
@Configuration
@MapperScan("按需修改")
public class MybatisPlusConfig {
/**
* 旧版
*/
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
/**
* 新版
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return mybatisPlusInterceptor;
}
}
修改等操作需要先查再改