MYBATIS_PLUS中关于锁的应用

1.乐观锁的应用。
乐观锁是低并发的情况可以处理
MYBATIS_PLUS中关于锁的应用_第1张图片
添加version字段,乐观锁。
MYBATIS_PLUS中关于锁的应用_第2张图片
这就是乐观锁。乐观锁默认是0
这个version一定要取出来,拿出来时候
看看,更新时候看看version是不是和我们取出来时候是一致的。这就是乐观锁。

MYBATIS_PLUS中关于锁的应用_第3张图片
这个和CAS机制几乎一模一样。

独占锁是一种悲观锁,而 synchronized 就是一种独占锁,synchronized 会导致其它所有未持有锁的线程阻塞,而等待持有锁的线程释放锁。

     所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操作,如果更新数据之前,验证一下,有没有冲入,如果因为冲突失败就重试,直到成功为止。而乐观锁用到的机制就是CAS。

当然一系列操作并不需要你自己去做
都是Mybatis机制去做的。

关于乐观锁如何去做
我们这里实现了一些
1.首先实体类里面加上version字段
MYBATIS_PLUS中关于锁的应用_第4张图片
MYBATIS_PLUS中关于锁的应用_第5张图片
添加乐观锁插件。
MYBATIS_PLUS中关于锁的应用_第6张图片

然后就可以用了。

Wrapper一个用来处理查询条件的。
MYBATIS_PLUS中关于锁的应用_第7张图片
新的条件。
拼装查询语句的
MYBATIS_PLUS中关于锁的应用_第8张图片
MYBATIS_PLUS中关于锁的应用_第9张图片
可以很明显看到拼成这样的查询语句,
拼在AND后面了
两个参数,一个是行,另一个是like什么。
MYBATIS_PLUS中关于锁的应用_第10张图片
串联之后进行链式编程,无非就是加AND而已。
MYBATIS_PLUS中关于锁的应用_第11张图片
可以去组装一下删除条件
queryWrapper是拼装查询条件的,查询的条件从queryWrapper中去拼接到。

你可能感兴趣的:(JAVA,数据库,c#,python)