在Spring Boot項目中使用MyBatis Plus的樂觀鎖功能非常簡單,只需要在實體類字段上加上@Version
注解即可。
首先,確保在pom.xml
文件中引入MyBatis Plus依賴:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
然后,在實體類中,添加@Version
注解在樂觀鎖字段上,如下所示:
import com.baomidou.mybatisplus.annotation.Version;
public class User {
private Long id;
private String name;
@Version
private Integer version;
// getters and setters
}
在對應的Mapper接口中,使用@Version
注解來標識樂觀鎖字段:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {
}
最后,在Service層的更新方法中,MyBatis Plus會自動處理樂觀鎖的邏輯。示例代碼如下:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
@Transactional
public void updateUserName(User user) {
userMapper.updateById(user);
}
}
在調用更新方法時,如果版本號發生沖突(即數據庫中的版本號與更新前的版本號不一致),MyBatis Plus會拋出OptimisticLockException
異常。此時,可以在Service方法中捕獲該異常并處理。