• JDBC 事务(一) 隔离级别


    JDBC事务

    事务指定一个隔离级别,该隔离级别定义一个事务必须与由其他事务进行的资源或数据更改相隔离的程度。隔离级别从允许的并发副作用(例如,脏读或虚拟读取)的角度进行描述。 

    a:脏读取:一个事务读取了另外一个并行事务未提交的数据

    b:不可重复读取:一个事务再次读取之前读过的数据时得到的数据不一致,被另外一个事务修改。

    把甲的安全级别设成是是允许自己可重复读的。那么甲事务在执行中读了一次ID是10的数据的资金是1000,在执行过程中第二次它再去读这个ID10的资金有可能就不是1000了,因为乙在甲执行第二次查询之前第一次查询之后将这条数据的资金修改并提交了。

    c:虚读:一个事务重新执行一个查询,返回的记录包含了其他事务提交的新记录

    设定事务的隔离级别:Connection.setTransactionIsolation(Connection.isolationLevel);

    四种隔离级别:
    Connection.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);//最底级别:只保证不会读到非法数据,上述3个问题有可能发生
    Connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); //默认级别:可以防止脏读
    Connection.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);//可以防止脏读和不可重复读取
    Connection.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); //最高级别:防止上述3种情况,事务串行执行,慎用

    从Table表来看

    允许自己,但是不一定会:V     不允许自己,绝对不会:x

    隔离级别

    脏读

    不可重复读

    幻读

    读未提交(Read uncommitted)

    V

    V

    V

    读已提交(Read committed)

    x

    V

    V

    可重复读(Repeatable read)

    x

    x

    V

    可串行化(Serializable )

    x

    x

    x

  • 相关阅读:
    ABAP POH和POV事件中 获得屏幕字段的值
    SAP 发送邮件 面向对象
    SAP文件的上传下载 SMW0,二进制文件
    SAP smartform 实现打印条形码
    SAP GB01替代 程序:RGUGBR00
    SAP问题【转载】
    物料库存确定组
    SAP ECC EHP7 RFC 发布成WebService
    NUMBER_GET_NEXT 获取编号 遇到关于按年度编号的问题
    SAP 参照sto订单创建外向交货BAPI
  • 原文地址:https://www.cnblogs.com/mjtabu/p/11942011.html
Copyright © 2020-2023  润新知