栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot中mybatis-plus的乐观锁

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot中mybatis-plus的乐观锁

//乐观锁
// 解决 丢失更新
// 如果不考虑 事务隔离性  产生读的问题?
// 脏读  不可重复读  幻读
// 写的问题: 丢失更新问题 并发同时更新的时候会出现
// 解决方案 :  一般用乐观锁
// 乐观锁  通过数据库里一个字段 version 版本号 来控制并发出现的同时修改的问题 谁先修改 第二个人就不能再修改了
// 悲观锁  第一个人操作完后 第二个人才能再操作  悲观锁可以覆盖上一个人的数据
// 如果第二个人 也能操作 这样就会产生丢失更新问题
//在MyBatis-Plus 中使用 乐观锁
// 1. 在表中添加的一个字段
// 2. 在实体类中添加字段
 // 3. 在这个字段上添加一个注解
package com.jsonweb.json.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.util.Date;


//lombok 注解
//不需要写 get set方法 有参无参构造 都会生成
@Data
public class User {
    @TableId(type= IdType.AUTO)
    private  Integer id;
    private  String name;
    private  Integer age;
    private  String email;

    @TableField(fill = FieldFill.INSERT)  //自动填充
    private Date creatTime;

    @TableField(fill = FieldFill.UPDATE)  //更新填充
    private Date updateTime;

    @Version
    private Integer version;  //版本号
}
//4. 配置乐观锁的插件

官方配置访问

 乐观锁 | MyBatis-Plus

//5.测试乐观锁
@Test
public void updateSuoTest(){
    //根据id 做查询
    User user1 = userMapper.selectById(3);
    //进行修改
    user1.setAge(123);

    int i = userMapper.updateById(user1);
    System.out.println(i);
  //会发现 数据库中版本号字段已经更新
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349102.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号