zoukankan      html  css  js  c++  java
  • 乐观锁和悲观所

    简单的乐观锁实现

    更新的时候给版本号字段加上 1,然后 UPDATE 会返回一个更新结果的行数,通过这个行数去判断。

    UPDATE 必须这样写:

    UPDATE T_USER u
       SET u.address = #address#,
           u.version = u.version + 1
     WHERE u.username = #username#
       AND u.version = #version#



    如果更新执行返回的数量是 0 表示产生并发修改了,需要重新获得最新的数据后再进行更新操作。

    Hibernate、JPA 等 ORM 框架或者实现,是使用版本号,再判断 UPDATE 后返回的数值,如果这个值小于 1 时则抛出乐观锁并发修改异常。

    参见:http://ask.okbase.net/topic/2013010715_15500_390339713.htm

  • 相关阅读:
    Java
    Linux
    Linux
    Linux
    Java
    Ansible
    Ansible
    Java
    ACM&OI 基础数论算法专题
    题解 P4781 【【模板】拉格朗日插值】
  • 原文地址:https://www.cnblogs.com/Jtianlin/p/5281147.html
Copyright © 2011-2022 走看看