乐观锁不是在数据库端锁住的
而是程序控制的
你说的那Mybatis我不知道是什么
但是乐观锁一般是这样
比如你数据库中有一条记录
你可以给他加上一个版本号
这样
如果同时有2个人查询出那个数据要修改
第一个人先查出来有事走了
第二个人查出来给改了
这时候你看
第一个人查出来的数据版本号比如是1
第二个人查出来也是1 但是他改了数据以后版本号变成2
这时候第一个人回来了继续修改数据
他的好知版本号是1 比2低
这时候就告诉他数据过期
乐观锁大概就是这个意思
是一种思路!
在select查询语句的结尾 加上for update,就可以实现锁行,使用for update of指定数据列之后,锁定的范围限制在了所在的数据表。也就是说,当我们使用连接查询配合of子饥迟句的时候,可以实现有针对性的锁定。
默认情况下胡锋的for update语句,效果相当于启动了一个会话级别的事务,在对应的数据表上加裤肢晌入一个数据表级共享锁。同时,在对应的数据行中加入独占锁。
泰牛程序员的数据库视频课程里面有讲解
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)