乐观锁主要用于解决数据更新丢失的问题(乐观锁就是ta比较乐观,觉得怎么操作都不会出问题)
比如:多个人同时修改一条数据时,最后一个提交的会把之前提交的全部覆盖(典型的就是12306抢票问题)
悲观锁:
简单来说就是串行操作,一个人在进行数据修改时,其他人不能对数据进行操作
乐观锁:
通过版本号version来控制数据的操作,当多人同时对一条数据进行操作时,会通过对版本号进行比较,当当前版本号与你的版本号相同,则操作数据成功,操作成功之后,版本号version加1,不同时操作失败
操作乐观锁
(1)首先我们需要在数据库中和bean实体类中添加version字段
bean实体类:
然后我们需要在该字段上加注解@Version
@Version
@TableField(fill = FieldFill.INSERT)
private Integer version;
@TableField(fill = FieldFill.INSERT)
注解是mybatis plus中的自动填充功能,主要在插入数据时将version置为1
接着看:
添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</