• 数据库事物 jdbc事物 spring事物 隔离级别:脏幻不可重复读


    1.数据库事物: 事物的概念 a给b打100块钱的例子

    2.jdbc事物: 通过下面代码实现

    private Connection conn = null;  

    private PreparedStatement ps = null;  

    try {  

        conn.setAutoCommit(false);  //将自动提交设置为false       

        ps.executeUpdate("修改1 SQL"); //执行修改1操作  

        ps.executeQuery("修改2 SQL");  //执行修改2操作  

        conn.commit();      //当两个操作成功后手动提交       

    } catch (Exception e) {  

        conn.rollback();    //一旦其中一个操作出错都将回滚,使两个操作都不成功  

        e.printStackTrace();  

    3.spring事物: 通过xml配置和注解来配置和使用事物, 事物的实现还是jdbc事物, 不过被spring包装了, 我们看不见

    4.脏幻不可重复读是在已经有了事物之后会发生的一些事情, 数据隔离级别方面的概念

    脏读:

    强调的是第二个事务读到的不够新。

    幻读 : 
    重点在于新增或者删除, 同样的条件 ,   第 1 次和第 2 次读出来的记录数不一样

    不可重复读 

    重点是修改, 同一事务,两次读取到的数据不一样。

    Spring声明性事务 隔离级别

    l          DEFAULT 使用数据库设置的隔离级别 ( 默认 ) ,由 DBA 默认的设置来决定隔离级别 . 而MySQL的默认事务隔离级别是:Repeatable Read

    l          READ_UNCOMMITTED 会出现脏读、不可重复读、幻读 ( 隔离级别最低,并发性能高 )

    l          READ_COMMITTED  会出现不可重复读、幻读问题(锁定正在读取的行)

    l          REPEATABLE_READ 会出幻读(锁定所读取的所有行)

    l          SERIALIZABLE 保证所有的情况不会发生(锁表)

  • 相关阅读:
    Kafka日志段源码分析
    Kafka日志结构概览
    LDAP统一身份认证解读及实践
    Keycloak集成三方身份提供者的注销流程
    Keycloak会话管理-refreshToken
    Cas校验INVALID_TICKET-not recognized
    如何获取Docker容器的root权限
    OIDC-code to token
    Newrelic集成wildfly报NoClassDefFoundError
    Cookie深入详解
  • 原文地址:https://www.cnblogs.com/zedosu/p/6635981.html
Copyright © 2020-2023  润新知