本文共 900 字,大约阅读时间需要 3 分钟。
乐观锁就是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("qisui123456@qq.com"); //执行更新的操作 userMapper.updateById(user); }完成~~~
转载地址:http://ijlwi.baihongyu.com/