• MybatisPlus 乐观锁插件使用


    什么是乐观锁?

      每次去拿数据的时候都认为别人不会修改,更新的时候会判断是别人是否回去更新数据,通过版本来判断,如果数据被修改了就拒绝更新。

     

    Mybatis Plus里面自带一个插件,可以帮我们轻松实现乐观锁

    使用方式:

    1、需要在数据库表创建version字段,类型为int

    CREATE TABLE `banner` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `img` varchar(524) DEFAULT NULL COMMENT '图片',
      `url` varchar(524) DEFAULT NULL COMMENT '跳转地址',
      `version` int(11) DEFAULT '1' COMMENT '乐观锁版本号'
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4;

    2、创建实体类,增加version属性注解

    @Version
    private Integer version;

    3、配置乐观锁插件

    @Configuration
    public class MybatisPlusPageConfig {
    
        /**
         * 新的分页插件(推荐)
         */
        @Bean
        public MybatisPlusInterceptor mybatisPlusInterceptor() {
            MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
            //分页插件
            interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
    
            //乐观锁插件
            interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
    
            return interceptor;
        }
    
    }

    4、测试使用,当修改version对象版本号的数据记录,乐观锁自动生效

        @Test
        public void testUpdaate(){
            Banner banner = new Banner();
            banner.setUrl("http://baidu.com");
            banner.setId(3);
            banner.setVersion(2); //对应的版本号
            log.info("修改结果:{}",bannerDao.updateById(bannerDO));
        }
  • 相关阅读:
    js将数字转为千分位/清除千分位
    mybatis中的$和#的区别
    js处理title超长问题
    mybatis错误 Mapped Statements collection does not contain value for
    bootstrap添加多个模态对话框支持
    java.util.Collections.copy()方法注意点
    list通过比较器进行排序
    jquery对radio和checkbox的操作
    c++类简介
    c++ 类
  • 原文地址:https://www.cnblogs.com/M87-A/p/15359997.html
Copyright © 2020-2023  润新知