在mybatis中实现乐观锁的步骤如下:
1.在数据库中对表user添加version字段。
2.在实体类User中添加属性version,并添加@Version注解
@Version private Integer version;
3.新建config包,包下建立MpConfig类,用于统一管理配置信息。在Mpconfig中添加mp拦截器插件的代码。并把启动类中的配置信息移植到该类进行统一管理。
@Configuration
@MapperScan("com.wangzhou.mpdemo1010.mapper")
public class MpConfig {
    // 乐观锁插件
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
} 4.(非必须)在实体类user中的version添加注解。
@TableField(fill = FieldFill.INSERT)
并在MyMetaObjectHandler的insertFill()中添加如下代码,设置version初始值为1.
this.setFieldValByName("version", 1, metaObject);编写测试代码测试,注意这里需要先查询,再修改,因为只有通过查询拿到version版本号才能够再update时进行版本对比。
 @Test
 public void testOptimisticLocker() {
    //先查询
    User user = this.userMapper.selectById(1428131805257474051l);
    //后修改
    user.setAge(99);
    this.userMapper.updateById(user);
 }
京公网安备 11010502036488号