1、声明式事务。@Transcation
---- 问题: 大量的操作在一个函数里,会导致锁的时间长,特别是中间夹杂第三方操作的时候,进而导致响应超时,或者数据库线程池被占光。
2、编程使事务 TranscationTemplate
并且用带版本号的乐观锁。
表中加version字段,表示版本。
先确定要修改记录的version值位 100
在TranscationTemplate的执行方法中,执行SQL语句:UPDATE TABLE SET COL1='',VERSION=VERSION+1 WHERE COL2='' AND VERSION = 100;
并且获取返回值,也就是修改掉的条数。
如果条数为1,表示修改成功,也就是可以往下走了。
如果条数不为1,表示修改失败,也就是不可以往下走。
----- 问题,没法回滚了。