zoukankan      html  css  js  c++  java
  • Java事物基础总结

    1.什么是事物?

      事物是逻辑上的的一种操作,这个操作过程中的每一个元素要么全部成功,要么全部失败.例如,银行转账过程视为一个事物,转出过程和转入过程要求全部成功或全部失败,通过提交事物或者回滚事物实现.

    2.事物的作用

      保证一组操作中要么全部成功,要么全部失败.

    3.事物的特性(重要)

      ACID

      Atomicity 原子性:是指事物是一个不可分割的工作单位事物的操作要么全部成功,要么全部失败

      Consister 一致性:事物前后数据的完整性保持一致(例如银行转账,转出账号少多少钱,转入账号就需要多多少钱)

      Isolation 隔离性:是指多个用户并发访问时候,彼此不会产生影响

      Durability 持久性:是指事物一旦被提交,他对数据库的改变时永久性的.

    4.事物的操作

      A:mysql事物操作

        开启事物      start transaction

        提交事物      commit

          回滚事物      rollback 

        注:事物只有回滚或者提交时才会执行

        mysql中有两种方式管理事物

          1)手动提交

            start transaction;
            sql语句操作数据库;
            commit;
    

          2)自动提交

            set autocommit = 0; ---- 0 :off   1:on

      B:jdbc事物操作  --- 通过Connection对象方法操作

        开启事物:connection对象.setAutoCommit=false;

        提交事物:connectin对象.commit();

        回滚事物:connection对象.rollback();

        注:通畅将事物操作的代码放到try catch中,当异常发生时回滚事物

      C:DBUtils操作事物

        开启事物:conn.setAutoCommit=false

        提交事物:DBUtils.commitAndClose(conn)

        回滚事物:DBUtils.rollbackAndClose(conn)

        注:new Query()时,不传递参数

    5.并发访问问题及解决方式

      并发访问问题:

        脏读:事物A读取到事物B为提价的数据

        不可重复读:事物A还未提交时,但事物B已经提交改变了数据库时,A重复读数据库的数据为事物B修改后的数据(因为事物A未提交数据,它重复读取数据时应该为开启事物时数据)

        虚读/幻读:于不可重复读相似.更侧重于读取的数据不一致.

      解决方式:   ---- 设置数据库的隔离级别

            1.read uncommitted 读未提交;  

        2.read committed 读已提交:   可解决脏读问题

        3.repeatable read 可重复度:    可解决问题 脏读和不可重复读

        4.serializable 串行化 同时只能执行一个事物,相当于事物中的单线程

      安全性能对比:

        安全:

        serializable > repeatable read > read committed > read uncommitted

        性能;

        serializable < repeatable read < read committed < read uncommitted

      #####常见的查询操作

        cmd命令查询当前事物的隔离等级:select @@tx_isolation;

        设置当前事物的隔离等级:set session transaction isolation level 隔离等级;

        查看当前是否为自动提交:show variables like '%commit%';

  • 相关阅读:
    mongodb
    python中读取文件的read、readline、readlines方法区别
    uva 129 Krypton Factor
    hdu 4734
    hdu 5182 PM2.5
    hdu 5179 beautiful number
    hdu 5178 pairs
    hdu 5176 The Experience of Love
    hdu 5175 Misaki's Kiss again
    hdu 5174 Ferries Wheel
  • 原文地址:https://www.cnblogs.com/cocosili/p/6699557.html
Copyright © 2011-2022 走看看