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