悲观锁与乐观锁

简介: MP中使用

悲观锁

悲观锁是认为在用户操作数据的时候一定会发生数据 所以把当前操作的数据全锁起来

实际上依靠的是数据库的锁机制

首先要关闭mysql的自动提交事务

image.png
实际上起作用的语句就是这两个其中的一个image.png
当第一个查询到数据在的修改时 如果第二个 查询也要查询该数据 那么第二个就会进入阻塞状态 等待第一个提交事务

乐观锁

与悲观锁相反 每一次都认为没问题 那么就是所有人都能同时访问操作数据

但是就会有并发冲突 问题 那么怎么解决呢

引入版本号 在每次修改后 版本号都会自动递增

拿到数据的时候 同时拿到版本号

当我们操作完准备提交的时候 就会查询此时的版本号跟我们一开始拿到的版本号是否一致 一致才会提交

在mp里面如果需要使用乐观锁的步骤:

  1. 数据库的表必须添加version字段
  2. 添加乐观锁的拦截器

image.png

  1. 以后你执行update语句的时候记得实体类要设置当前version的值image.png
相关文章
|
7月前
|
消息中间件 安全 Java
什么是乐观锁、在哪用过乐观锁
什么是乐观锁、在哪用过乐观锁
200 0
|
7月前
|
SQL 数据处理 数据库
乐观锁和悲观锁
乐观锁和悲观锁
72 0
|
3月前
|
SQL XML Java
乐观锁与悲观锁是什么?
本文详细分析了悲观锁和乐观锁的原理、区别、实现方式及应用场景。悲观锁假设冲突频繁,通过加锁保护数据一致性,适用于高并发冲突场景;乐观锁假设冲突较少,通过版本号或时间戳检测冲突,适用于读多写少场景。文章通过具体示例展示了两种锁机制的实现过程,并总结了其优缺点和适用场景,帮助读者根据实际需求选择合适的并发控制机制。
256 4
|
4月前
|
SQL 缓存 NoSQL
乐观锁的实现
乐观锁的实现
|
Java API 数据库
什么是乐观锁,什么是悲观锁?
在互联网公司面试中,很多小伙伴都被问到关于锁的理解。今天,我给小伙伴们来聊一聊我对锁的理解,不管我们互斥锁、自旋锁、重入锁、读写锁、行锁、表锁等等等等这些概念,我把他们都归纳为两种类型,乐观锁和悲观锁。
129 0
|
5月前
|
数据库
乐观锁介绍
乐观锁介绍
|
7月前
|
安全 Java 关系型数据库
乐观锁与悲观锁
【4月更文挑战第11天】乐观锁与悲观锁
52 3
|
7月前
|
关系型数据库 MySQL 数据处理
一文彻底理解乐观锁与悲观锁
一文彻底理解乐观锁与悲观锁
855 0
|
7月前
|
安全 关系型数据库 MySQL
悲观锁和乐观锁
悲观锁和乐观锁
|
NoSQL 算法 Java
乐观锁与悲观锁的实现
本文力求来通俗地讲讲编程中的乐观锁和悲观锁,以及分别是怎么实现的。
103 0
乐观锁与悲观锁的实现