1.主要适用场景:
当要更新一条记录的时候,希望这条记录没有被别人更新,也就是说实现线程安全的数据更新
2.乐观锁实现方式(在数据库新增version字段,默认为1):
取出记录时,获取当前version:假设取出的version=1:SELECT id,name,age,email,create_time,update_time,version FROM user WHERE id=1
更新时,带上这个version:UPDATE USER SET `name`='zdc', `version`=`version` + 1 WHERE id=1 AND `version`=1
如果version不对,就更新失败
3.mybatis plus中实现:
添加@version注解:
创建配置文件(删除主类中的 @MapperScan 扫描注解):