一. 乐观锁:
当程序中可能出现并发的情况时,就需要保证在并发情况下数据的准确性,以此确保当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。
没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。
2.实现步骤
2.1实体类加上@Version字段
2.2配置类中配置乐观锁插件
@Configuration
@MapperScan("com.laoyang.Mapper")
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//配置乐观锁插件
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
}
理解:就是对数据操作时给version属性+1,因此再次访问时就不会对原来的数据进行修改,但是当另一个人修改时就会找不到数据,因此要再次优化,重新获取再修改即可。