赞
踩
版本号不一致,修改失败的情况
2.版本号一致,修改成功的情况
修改成功后,会发现version自动增加了1,此时修改成功,下次修改版本号需要是2与数据库对应才可以修改成功,这就是乐观锁。
要更新一条记录的时候,希望这条记录没有被别人更新
乐观锁实现方式:
取出记录时,获取当前 version
更新时,带上这个 version
执行更新时, set version = newVersion where version = oldVersion
如果 version 不对,就更新失败
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));
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。