• 如何保证数据一致性


    1、声明式事务。@Transcation

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

    2、编程使事务 TranscationTemplate

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

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

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

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

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

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

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

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

  • 相关阅读:
    mysql lock
    yii2引入js和css
    Yii 2.x 和1.x区别以及yii2.0安装
    Curl https 访问
    boost::any 用法
    boost单元测试框架
    shared_ptr的线程安全
    nginx php fastcgi安装
    ip相关
    Design Pattern Explained 读书笔记二——设计模式序言
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/9005491.html
Copyright © 2020-2023  润新知