乐观锁实现方式:
- 取出记录时,获取当前version
- 更新时,带上这个version
- 执行更新时, set version = newVersion where version = oldVersion
- 如果version不对,就更新失败
1.先查询获取版本号
乐观锁:1.先查询获取版本号 version=1.
update user set name="周娜" ,version= version+1
where id=1342479442894655492 and version =1;
给数据库增加version字段
我们实体类添加对应的字段
注册组件
@Configuration //配置类
@EnableTransactionManagement
public class MybatisPlusConfig {
//注册乐观锁插件
@Bean
public OptimisticLockerInterceptor optimisticLockerInnerInterceptor(){
return new OptimisticLockerInterceptor();
}
}
测试乐观锁成功
//1.先查询用户信息
User user = userMapper.selectById(1342479442894655493L);
//2.修改用户信息
user.setName("娜娜");
//3.执行更新操作
测试乐观锁失败
User user2 = userMapper.selectById(1342479442894655493L);
//2.修改用户信息
user2.setName("娜姐");
userMapper.updateById(user2);
userMapper.updateById(user);
// 1.先查询用户信息
User user = userMapper.selectById(1342479442894655491L);
//2.设置用户信息
user.setName("周小妞");
//3.更新用户信息
userMapper.updateById(user);