如何保证数据一致性


1、声明式事务。@Transcation

   ----  问题: 大量的操作在一个函数里,会导致锁的时间长,特别是中间夹杂第三方操作的时候,进而导致响应超时,或者数据库线程池被占光。

2、编程使事务 TranscationTemplate

    并且用带版本号的乐观锁。

            表中加version字段,表示版本。

    先确定要修改记录的version值位 100

       在TranscationTemplate的执行方法中,执行SQL语句:UPDATE TABLE SET COL1='',VERSION=VERSION+1 WHERE COL2='' AND VERSION = 100;

      并且获取返回值,也就是修改掉的条数。

        如果条数为1,表示修改成功,也就是可以往下走了。

        如果条数不为1,表示修改失败,也就是不可以往下走。

         ----- 问题,没法回滚了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM