Mybatis-Plus乐观锁

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

在这里插入图片描述
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;
    }

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

// 测试乐观锁 修改
    @Test
    public void t6() {
        // 每次修改,指定的乐观锁需要和数据库一致,否则修改失败
        // 修改成功后,乐观锁会自动+1
        Student student = new Student(3L,"李四",18,"123@163.com",1);
        log.info("修改,乐观锁{}",dao.updateById(student));
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值