• 事物


    一、Mysql事务
      事务:
        事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功。

       1、Mysql中的事务
          a、mysql引擎是支持事务的
          b、mysql默认自动提交事务。每条语句都处在单独的事务中。
          c、手动控制事务
         开启事务:start transaction | begin
         提交事务:commit
         回滚事务:rollback


       2、JDBC如何控制事务
        conn.setAutoCommit(false): 开启事物
        conn.conmit(): 提交事物
        conn.rollback(): 回滚事物

       3、事务的特性
        原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
        一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。转账前和转账后的总金额不变。
        隔离性:事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,

            不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
        持久性:指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。

       4、事务的隔离级别
        赃读:    指一个事务读取了另一个事务未提交的数据。
        不可重复读:   在一个事务内读取表中的某一行数据,多次读取结果不同。一个事务读取到了另一个事务提交后的数据。(update)
        虚读(幻读):是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。 (insert)

        数据库通过设置事务的隔离级别防止以上情况的发生:
          * 1、READ UNCOMMITTED: 赃读、不可重复读、虚读都有可能发生。
          * 2、READ COMMITTED: 避免赃读。不可重复读、虚读都有可能发生。(oracle默认的)
          * 4、REPEATABLE READ:避免赃读、不可重复读。虚读有可能发生。(mysql默认)
          * 8、SERIALIZABLE: 避免赃读、不可重复读、虚读。
            级别越高,性能越低,数据越安全

           mysql中:
          查看当前的事务隔离级别:SELECT @@TX_ISOLATION;
          更改当前的事务隔离级别:SET TRANSACTION ISOLATION LEVEL 四个级别之一。
          设置隔离级别必须在事务之前

       5、JDBC中控制事物的级别

    Connection接口:

    设置隔离级别:必须在开启事务之前。

    Connection.setTransactionIsolation(int level);

  • 相关阅读:
    Atitti 图像处理 图像混合 图像叠加 blend 原理与实现
    Atitit Gaussian Blur 高斯模糊 的原理and实现and 用途
    Atitit 图像处理 灰度图片 灰度化的原理与实现
    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结
    Atitit 实现java的linq 以及与stream api的比较
    Atitit attilax在自然语言处理领域的成果
    Atitit 图像处理 常用8大滤镜效果 Jhlabs 图像处理类库 java常用图像处理类库
    Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结
    Atitit apache 和guava的反射工具
    atitit。企业的价值观 员工第一 vs 客户第一.docx
  • 原文地址:https://www.cnblogs.com/soficircle/p/6918774.html
Copyright © 2020-2023  润新知