当前位置:   article > 正文

Mybatis-Plus乐观锁_mybatisplus乐观锁

mybatisplus乐观锁

版本号不一致,修改失败的情况
在这里插入图片描述

在这里插入图片描述
2.版本号一致,修改成功的情况
在这里插入图片描述
在这里插入图片描述
修改成功后,会发现version自动增加了1,此时修改成功,下次修改版本号需要是2与数据库对应才可以修改成功,这就是乐观锁。

乐观锁插件

要更新一条记录的时候,希望这条记录没有被别人更新
乐观锁实现方式:

取出记录时,获取当前 version
更新时,带上这个 version
执行更新时, set version = newVersion where version = oldVersion
如果 version 不对,就更新失败

Mybatis乐观锁:具体实现

1.写在启动类的下面配置乐观锁插件
在这里插入图片描述

@Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        //Mybatisplus 分页插件
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 乐观锁插件
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        //设置分页插件 指定数据库类型
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//如果配置多个插件,切记分页最后添加
        return interceptor;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2.对应的表上添加乐观锁字段
在这里插入图片描述
3.在实体类进行@Version标记
在这里插入图片描述
4.执行测试
需要通过修改才可以触发

// 测试乐观锁 修改
    @Test
    public void t6() {
        // 每次修改,指定的乐观锁需要和数据库一致,否则修改失败
        // 修改成功后,乐观锁会自动+1
        Student student = new Student(3L,"李四",18,"123@163.com",1);
        log.info("修改,乐观锁{}",dao.updateById(student));
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/435922
推荐阅读
相关标签
  

闽ICP备14008679号