开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):项目技术点-MybatisPlus 实现乐观锁(2)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11273
项目技术点-MybatisPlus 实现乐观锁(2)
目录:
一.乐观锁的具体实现
二.演示效果
一、乐观锁的具体实现
第一步骤:
(1)表添加字段,作为乐观锁版本号
@Version int 11
(2)对应实体类添加版本号属性
private Integer version;//版本号
第二步骤:
(1)在实体类版本号属性添加注解
@version
private Integer version:
//版本号
第三步骤
(1)配置乐观锁插件
(1.1)spring xml:
<bean class"com.baomidou.mybatisplus.extension.plugins.0ptimisticLockerInterceptor"/>
(1.2)spring boot:
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor()
returnnewOptimisticLocker Interceptor();
注:可以在启动类里面添加,更多添加在配置类
2.乐观锁插件
Configuration
@MapperScan("com atguigu.mpdemo1010.mapper")
public class MpConfig (
//乐观锁插件
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor(returnnewOptimisticLockerInterceptor0:
3.添加一个自动填充
@0verride
public void insertFill(Meta0bject meta0bject) {
this.setFieldValByName(fieldName:createTime',new Date,meta0bject);
this.setFieldValByName(fieldName:updateTime',new Date,meta0bject);
this.setFieldValByName(fieldName:"version",fieldVal:1,meta0bject);
注:使效果更加明显
二、演示效果
//添加操作
Test
public void addUser ()
User user = newUser0);
user.setName("东方不败");
user.setAge (60);
user.setEmail('lucy@qq-com'');
user. setCreateTime(new Date0);
user. setUpdateTime (new Date0);
int insert = userMapper.insert(user);
System.out.println(" insert:"+insert) ;
结果:
1231115382920916994 东方不败 60
测试乐观锁
@Test
public void testOptimisticLocker()
//根据 id 查询数据
User user=userMapper.selectById(serializable:1231115382920916994L) ;
//进行修改
user.setAge(200);
userMapper.updateById(user);