Mybatis-plus中乐观锁的实现

乐观锁就是ta比较乐观,觉得怎么操作都不会出问题,ta干什么都不会加锁,如果一旦出现了问题呢,ta就会再次更新值进行测试。乐观锁假设数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则返回给用户错误的信息,让用户决定如何去做。效率相对来说比较高~

乐观锁实现方式:
1.取出记录时,获取当前version
2.更新时,带上这个version
3.执行更新时, set version = newVersion where version = oldVersion
4.如果version不对,就更新失败

测试:
在这里插入图片描述
给数据库增加一个version字段,默认是1 上面的数据是我修改过的了~
然后给对应的实体类也加上这个字段
在这里插入图片描述
注册组件:编写一个配置类

@MapperScan("cn.qisui.mapper")
@EnableTransactionManagement  //开启事务
@Configuration   //配置类
public class MyBatisPlusConfig {
    //注册乐观锁插件
    
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor(){
        return new OptimisticLockerInterceptor();
    }
}

test

    @Test
    public void testOptimisticLocker(){
        //查询用户的信息
        User user = userMapper.selectById(2L);
        //修改用户的信息
        user.setName("丁七岁");
        user.setEmail("[email protected]");
        //执行更新的操作
        userMapper.updateById(user);
    }

在这里插入图片描述
在这里插入图片描述
完成~~~

原创文章 38 获赞 52 访问量 4525

猜你喜欢

转载自blog.csdn.net/qq_43612538/article/details/105824506