欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java并发操作同一条数据防止覆盖更新 使用 乐观锁 悲观锁

程序员文章站 2024-01-08 09:35:16
...

乐观锁:

使用一个version字段标识数据的当前版本,每次更新数据的时候同时更新version = version + 1,where条件中需要加上version等于当前事务查询出的数据的version,如果version的值已经改变,则更新失败。

update t_goods   

set status=2,version=version+1  

where id=#{id} and version=#{version}; 

 

悲观锁:mysql行级锁。排它锁  for update

begin;

select id from user where id = 1 for update;//锁住这条数据

end;

commit;//提交,释放悲观锁

上一篇:

下一篇: