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%';

  • 相关阅读:
    习题2-7
    习题2-6
    习题2-5
    习题2-4
    习题2-3
    作业二 分支循环结构
    2- 8
    实验三-计算圆柱体积
    实验三-计算n个圆柱体体积
    实验3-计算圆面积
  • 原文地址:https://www.cnblogs.com/cocosili/p/6699557.html
Copyright © 2011-2022 走看看