在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号