博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis-plus中乐观锁的实现
阅读量:3946 次
发布时间:2019-05-24

本文共 900 字,大约阅读时间需要 3 分钟。

乐观锁就是ta比较乐观,觉得怎么操作都不会出问题,ta干什么都不会加锁,如果一旦出现了问题呢,ta就会再次更新值进行测试。乐观锁假设数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则返回给用户错误的信息,让用户决定如何去做。效率相对来说比较高~

乐观锁实现方式:

1.取出记录时,获取当前version
2.更新时,带上这个version
3.执行更新时, set version = newVersion where version = oldVersion
4.如果version不对,就更新失败

测试:

在这里插入图片描述
给数据库增加一个version字段,默认是1 上面的数据是我修改过的了~
然后给对应的实体类也加上这个字段
在这里插入图片描述
注册组件:编写一个配置类

@MapperScan("cn.qisui.mapper")@EnableTransactionManagement  //开启事务@Configuration   //配置类public class MyBatisPlusConfig {
//注册乐观锁插件 @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor(){
return new OptimisticLockerInterceptor(); }}

test

@Test    public void testOptimisticLocker(){
//查询用户的信息 User user = userMapper.selectById(2L); //修改用户的信息 user.setName("丁七岁"); user.setEmail("qisui123456@qq.com"); //执行更新的操作 userMapper.updateById(user); }

在这里插入图片描述

在这里插入图片描述
完成~~~

转载地址:http://ijlwi.baihongyu.com/

你可能感兴趣的文章
工作感悟(2017/3/26)
查看>>
Spring Data Elasticsearch 配置 LocalDate、LocalDateTime 反序列化
查看>>
Yew 初尝试
查看>>
Rust SSH 操作 执行远程命令 上传下载文件
查看>>
浅谈GCD
查看>>
IOS控件之UITextField用法及注意点
查看>>
IOS控件之UITableView使用技巧
查看>>
iOS性能优化-TableView
查看>>
iOS定位-利用CoreLocation.framework获取当前城市
查看>>
iOS控件之UITextView字数控制以及占位符的实现
查看>>
iOS图片轮播器(第三方SDCycleScrollView)
查看>>
Mansory 基本用法
查看>>
iOS之CocoaPods 简明安装教程
查看>>
iOS常用代码块
查看>>
iOS常用宏命令大全
查看>>
YYKit - YYModel 使用方法
查看>>
OC网络封装工具
查看>>
iOS-浅谈block
查看>>
Socket介绍
查看>>
swift-闭包产生的循环引用以及解决办法
查看>>