前提:
1.数据库有字段version
2.pom文件有mp依赖
第一步:pojo添加属性‘version’ 添加新注解
@Version
@TableField(fill =FieldFill.INSERT)
private Integer version;
第二步:编写配置 添加乐观锁插件
@Configuration
public class MybatisConfig {
/**
* 乐观锁插件
* @return
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
}
第三步:设置新增初始值(mybatisplus自动填充,设置版本号初始值为1,不设置也可以)
@Component
public class MyMetaObjectHandle implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
this.setFieldValByName("version", 1, metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}
第四步:测试
@Test
void fillTest2(){
StudentInformation studentInformation1 = studentMapper.selectOneInformation(1572140606715727874L);
studentInformation1.setAge(10);
studentMapper.updateById(studentInformation1);
}
结果: