mybatisplus中设置乐观锁,首先需要在表结构中添加一个字段表示乐观锁,之后再domain中对应的字段中添加上注解@Version,之后需要添加乐观锁的拦截器,然后在测试方法中进行测试
2023-09-10
version字段表示乐观锁

在表结构中添加一个字段表示乐观锁
package com.hh.domain; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.Version; import lombok.Data; /** * @author hh * @version 1.0 * @DATE 2023-09-10 21:34:29 */ @Data @TableName(value = "tbl_user") public class User { private Long id; private String name; private Integer age; private String phone; @TableLogic(value = "0",delval = "1") private Integer deleted; @Version private Integer version; }
MpConfig
package com.hh.config; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author hh * @version 1.0 * @DATE 2023-09-10 18:07:25 */ @Configuration public class MpConfig { @Bean public MybatisPlusInterceptor mpInterceptor(){ MybatisPlusInterceptor mp = new MybatisPlusInterceptor(); mp.addInnerInterceptor(new PaginationInnerInterceptor()); mp.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); return mp; } }
TestUser
package com.hh.dao;
import com.hh.domain.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/**
* @author hh
* @version 1.0
* @DATE 2023-09-10 21:41:44
*/
@SpringBootTest
public class TestUser {
@Autowired
private UserDao userDao;
//方式一
@Test
public void testUpdate(){
User user = new User();
user.setId(1L);
user.setName("wahaha");
user.setVersion(1);
userDao.updateById(user);
}
//方式二
@Test
public void testUpdate2(){
User user = userDao.selectById(1l);
user.setName("wawawa");
userDao.updateById(user);
}
}

浙公网安备 33010602011771号