什么是乐观锁?就是快乐的锁。
为了解决并发修改,出现了两种锁,乐观锁和悲观锁。
乐观锁:不上锁,反复去尝试
悲观锁:上锁,等待
比喻:厕所问题
乐观锁:厕所没有门,第一个人进去,第二个人也能进去,发现有人第二个人再出来,过一会儿再进去看看有没有人
悲观锁:进入坑位,上锁,外面的人等着。
乐观锁:
悲观锁:
@SpringBootApplication
@MapperScan("com.atguigu.mapper")
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class,args);
}
//mybatis-plus插件加入进来IOC容器
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
//mybatis插件集合
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//分页插件
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
//乐观锁[版本号插件]
mybatisPlusInterceptor().addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
}
只需要加上version注解
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
//当前属性对应逻辑删除的字段
//0未删除 1已经删除
@TableLogic("deleted")
private Integer deleted;
@Version
private Integer version;
}
推荐阅读:
四、SpringMVC实战:构建高效表述层框架
雪花算法ID和UUID的区别
使用Mybatis-plus
SpringBoot读取自定义属性名
Mybatis分页插件PageHelper
MybatisX 插件逆向工程 Gennerator 自动生成 实体类 Mapper映射
SpringMVC参数校验
Cookie、Session 和 Token 之间的关系
mybatis映射文件报错 URI is not registered
SpringBoot项目打包方法
行动消除疑虑