乐观锁 通过控制版本号,实现事务的锁控制,那么怎样将乐观锁加入其中呢?
在数据库中 新加一列 乐观锁 列(version)。

在 实体类中加 对应属性 version,属性上面加注解
//乐观锁 版本号
@Version//乐观锁
@TableField(fill = FieldFill.INSERT)//自动填充
private Integer version;
新建 自动填充类
//自动填充配置类
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
//设置增加时间
@Override
public void insertFill(MetaObject metaObject) {
//属性 : 需要填充的属性 ,默认值,什么类型
this.setFieldValByName("version",1,metaObject);
}
//设置更新时间
@Override
public void updateFill(MetaObject metaObject) {
}
修改数据库数据的代码
//修改数据(有乐观锁)
@Test
public void updateUserVersion(){
//需要先查询,将版本号查询出来,在修改,会将版本号 +1
User user=userMapper.selectById(要修该数据的id L);
user.setName("王五004");
user.setAge(42);
int update = userMapper.updateById(user);
System.out.println("update = " + update);
}