zoukankan      html  css  js  c++  java
  • 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));
        }
  • 相关阅读:
    Cocos2d-x 2.x项目创建
    Mac OS 使用Git
    Android Studio And Gradle
    Mac OS环境变量配置(Android Studio之Gradle)
    【Android UI】 Shape详解
    JS-OC通信之Cordova简介
    python类的定义和使用
    Android屏幕适配常识
    Python面试315题
    第十五篇 Python之文件处理
  • 原文地址:https://www.cnblogs.com/M87-A/p/15359997.html
Copyright © 2011-2022 走看看