在mp中如何配置乐观锁
时间: 2024-04-29 07:21:24 浏览: 56
J.U.C-AQS框架同步组件之StampedLock乐观锁悲观锁
在 MyBatis-Plus 中,乐观锁的配置有以下两种方式:
1. 注解方式
可以在实体类中使用 @Version 注解,用于标识乐观锁字段,并且在更新操作时会自动对该字段进行加一操作。示例代码如下:
```java
@Data
public class User {
private Long id;
private String name;
private Integer age;
@Version
private Integer version;
}
```
2. XML 配置方式
在 XML 配置文件中,可以通过 <version> 标签来配置乐观锁字段。例如:
```xml
<bean id="mybatisSqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:mapper/*.xml"/>
<property name="plugins">
<array>
<bean class="com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor"/>
</array>
</property>
<property name="globalConfig">
<bean class="com.baomidou.mybatisplus.core.config.GlobalConfig">
<property name="dbConfig">
<bean class="com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig">
<property name="logicDeleteValue" value="1"/>
<property name="logicNotDeleteValue" value="0"/>
<property name="versionFieldName" value="version"/>
</bean>
</property>
</bean>
</property>
</bean>
```
其中,<bean class="com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor"/> 表示开启乐观锁插件,<property name="versionFieldName" value="version"/> 表示设置乐观锁字段为 version 字段。在实体类中,也需要有 version 字段。
需要注意的是,在使用 MyBatis-Plus 自带的乐观锁插件时,不需要手动在 SQL 语句中添加 version 字段的判断和更新操作,MyBatis-Plus 会自动完成这些操作。
阅读全文