当要更新一条记录的时候,希望这条记录没有被别人更新
乐观锁实现方式:
version
version
set version = newVersion where version = oldVersion
version
不对,就更新失败乐观锁配置需要两步
<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>
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
@Version
private Integer version;
说明:
int
,Integer
,long
,Long
,Date
,Timestamp
,LocalDateTime
newVersion = oldVersion + 1
newVersion
会回写到 entity
中
updateById(id)
与 update(entity, wrapper)
方法
update(entity, wrapper)
方法下, wrapper
不能复用!!!示例:
// 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;
}
}
说明:继承自AbstractWrapper,自身的内部属性entity也用于生成where条件及LambdaUpdateWrapper,可以通过newUpda...
查询语言Hibernate 查询语言(HQL)是一种面向对象的查询语言,类似于 SQL,但不是去对表和列进行操作,而是面向对象和它们的属...
正如你所知道的 Java 内部类是在其他类的范围内被定义的,同理,inner beans 是在其他 bean 的范围内定义的 bean。因此property ...
JavaBean是特殊的Java类,是用Java语言写成的可重用组件,并且遵守JavaBeans API规范。接下来给出的是JavaBean与其它Java类相比...
Servlet 数据库访问本教程假定您已经了解了 JDBC 应用程序的工作方式。在您开始学习 Servlet 数据库访问之前,请确保您已经有适...