在说具体的锁结构时,先思考一个问题,那就是为什么要上锁?然后我要如何选择锁?锁具体如何实现? 在文章得末尾我给出了我的个人答案. 一.什么是悲观锁? 1.悲观锁就是在操作数据时,认为此操作会出现数据冲突,所以在进行每次操作时都要通过获取锁才能进行对相同数据的操作,这点跟java中的synchronized很相似. 2.在MySQL中如何实现悲观锁.? mysql中有悲观锁的实现,我们想实现悲观锁时调用相对应得语句. 测试用表的结构和插入一行数据,下面其他的锁也会同时用到这个表. use test
实现原理 取出记录时,获取当前version更新时,带上这个version执行更新时, set version = newVersion where version = oldVersion如果version不对,就更新失败 实现方式 1.数据库中增加一个version字段,默认值为0 version int(10) NOT NULL DEFAULT '0' COMMENT '乐观锁版本号,每次修改+1' 2.配置 @Configuration public class MybatisPlusC