在MyBatis中實現樂觀鎖可以通過在對應的實體類中添加一個版本號字段,并在對應的更新操作中更新這個版本號字段。具體步驟如下:
public class User {
private Long id;
private String name;
private Integer version;
// getters and setters
}
<update id="updateUser" parameterType="User">
UPDATE user
SET name = #{name}, version = version + 1
WHERE id = #{id} AND version = #{version}
</update>
public void updateUser(User user) {
int rows = userMapper.updateUser(user);
if (rows == 0) {
throw new OptimisticLockException("更新失敗,數據已被修改");
}
}
這樣就可以在MyBatis中實現樂觀鎖了。在更新操作時,如果版本號不匹配,更新操作將失敗并拋出異常。