Mybatis-Plus乐观锁配置流程

 更新时间:2024年01月05日 08:49:18   作者:白大锅  
这篇文章主要介绍了Mybatis-Plus乐观锁配置使用流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作有一定的参考学习价值,感兴趣的朋友们下面随着小编来一起学习吧

一.乐观锁实现

1.配置插件

(1).XML方式

<bean class="com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor" id="optimisticLockerInnerInterceptor"/>

<bean id="mybatisPlusInterceptor" class="com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor">
    <property name="interceptors">
        <list>
            <ref bean="optimisticLockerInnerInterceptor"/>
        </list>
    </property>
</bean>

(2).Springboot注解方式

下方为博主使用时场景 单独写config带@Bean注解

private MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor mpi = new MybatisPlusInterceptor();
        //添加乐观锁拦截器
        mpi.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return mpi;
    }

单独写config文件如下:

// Spring Boot 方式
@Configuration
@MapperScan("按需修改")
public class MybatisPlusConfig {
    /**
     * 旧版
     */
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor() {
        return new OptimisticLockerInterceptor();
    }

    /**
     * 新版
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

2.实体类字段增加注解

@Version
private Integer versionNumber;

注意:支持的数据类型有int,Integer,long,Long,Date,Timestamp,LocalDateTime并且仅支持 updateById(id) 与 update(entity, wrapper) 方法在 update(entity, wrapper) 方法下, wrapper 不能复用!!!

二.Parameter ‘MP_OPTLOCK_VERSION_ORIGINAL‘ not found. Available parameters are [param1, et]问题解决

本身乐观锁使用比较简单 但是遇到了乐观锁插件注入失败问题 网上解决思路如下:

1、先在数据库表中添加version字段
2、在实体类中定义version字段,并使用@Version注解标记
3、在mybatis-plus拦截器中添加OptimisticLockerInnerInterceptor()乐观锁拦截器

但是并未解决我的问题 随后查看项目 发现项目中已经创建了一个sqlSessionFactory:

在这里插入图片描述

本身mybatisplus在启动项目时会自动扫描并注入相关插件 但是此处单独配置后 并且添加了@Primary注解 后续就只会走此处的配置 所以我们在外部添加的添加乐观锁插件实际并未真正添加成功 或者说并没有走我们添加乐观锁插件的代码 解决如下:

在这里插入图片描述

在这里插入图片描述

还有一种思路就是 启动类禁用掉之前配置 那我们单独写的添加乐观锁配置类也可以生效~

以上就是Mybatis-Plus乐观锁配置流程的详细内容,更多关于Mybatis-Plus乐观锁的资料请关注脚本之家其它相关文章!

相关文章

  • idea新建springboot项目的方法

    idea新建springboot项目的方法

    这篇文章主要介绍了idea新建springboot项目的方法,文中讲解非常细致,图文并茂帮助大家更好的理解学习,感兴趣的朋友可以了解下
    2020-06-06
  • Java中的非对称加密算法原理与实现方式

    Java中的非对称加密算法原理与实现方式

    在当今的信息时代,数据安全已经成为了一个至关重要的问题,加密技术作为保障信息安全的重要手段,受到了广泛的应用和关注,本篇文章将详细介绍Java中的非对称加密算法原理及其实现方式,需要的朋友可以参考下
    2023-12-12
  • SpringBoot2使用Jetty容器操作(替换默认Tomcat)

    SpringBoot2使用Jetty容器操作(替换默认Tomcat)

    这篇文章主要介绍了SpringBoot2使用Jetty容器操作(替换默认Tomcat),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Java @Transactional指定回滚条件

    Java @Transactional指定回滚条件

    这篇文章主要介绍了Java @Transactional指定回滚条件,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • 关于@ApiModel和@ApiModelProperty的使用

    关于@ApiModel和@ApiModelProperty的使用

    这篇文章主要介绍了关于@ApiModel和@ApiModelProperty的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Spring 父类变量注入失败的解决

    Spring 父类变量注入失败的解决

    这篇文章主要介绍了Spring 父类变量注入失败的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java自定义注解用法实例小结

    Java自定义注解用法实例小结

    这篇文章主要介绍了Java自定义注解用法,结合实例形式总结分析了java常见的自定义注解类型、功能、用法及操作注意事项,需要的朋友可以参考下
    2019-09-09
  • java静态代理的含义及用法

    java静态代理的含义及用法

    在本篇文章里小编给大家整理的是一篇关于java静态代理的含义及用法,有需要的朋友们可以跟着学习参考下。
    2021-06-06
  • Java中的动态代理实现代码实例

    Java中的动态代理实现代码实例

    这篇文章主要介绍了Java中的动态代理实现代码实例,jdk动态代理本质上是使用被代理对象的类加载器,通过被代理类实现的接口在运行时动态构造出代理类来增强原始类的功能的方法,需要的朋友可以参考下
    2023-12-12
  • 解决StringBuffer和StringBuilder的扩容问题

    解决StringBuffer和StringBuilder的扩容问题

    这篇文章主要介绍了解决StringBuffer和StringBuilder的扩容问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论