设计思路
1.取出当前需要更新的记录,并获取当前版本好version
2.在更新时候带上version
3.执行更新时,sql中加入如下逻辑
set version = new_version where version = old_version
## 代码实现
2.数据库实例表当中添加字段version
2.添加mybatis全局配置
```java
@Configuration
public class MybatisPlusOptLockerConfig{
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
}
3.数据库实体中加入Mybatis的版本好注解@Version
@Data
@Accessors(chain=ture)
@TableName(value="xxx")
public class Example implements Serializable{
static final long serialVersion = -131351451541435;
@TableId(value="id",type=IdType.AUTO)
private Long id;
private Long goodId;
private String goodName;
private Long num;
//@用注解@Version开启乐观锁
@Version
private Integer version;
}
4.sql
update xxx set good_id = ?,good_name = ?,version = ? where id = ? and version = ?