依次解决下面的问题

  1. 为什么要有事务
  2. 什么是事务
  3. 怎么用事务
  4. 关于事务的概念有哪些

(1)
生活中比如转账操作,可以分两步,第一步给一方减少金额,第二步给另一方增加对应金额。但是如果在第一步和第二步中间发生了异常导致第二步没有执行,就会发生“钱变少了”的问题。这时事务的概念就产生了
(2)
事务:是一系列操作的总称,这些操作不可分割
(3)
事务在数据库中,无非就3个操作

  • 开启事务(connection.setAutoCommit(false))
  • 提交事务(connection.commit())
  • 回滚事务(connection.rollback())

(4)
与事务相关的概念

  • 事务描述相关:ACID
    原子性(强调不可以在分割,是最小单元)
    一致性(事务发生前后,业务数据要正确一致)
    隔离性isolation(强调,并发时,两个事务隔开的程度
    永久性(强调事务提交后,永久存储在数据库中)
  • 事务操作相关:开启事务,提交事务,回滚事务,保存点
  • 在程序中事务相关概念:
    程序类相关:
    事务管理器类(管理事务的执行。有很多事务管理器,我举例Spring的事务管理器,DataSourceTransactionManager)
    事务定义类(定义事务的属性,如传播性,隔离性等,举例Spring的事务定义类,TransactionDefinition)
    事务状态类(描述事务的状态,如是否已经提交等,举例Spring的事务状态类,TransactionStatus)
    程序操作相关:
    传播性propagation(强调如果两个方法都使用了事务,且一个方法调用另外一个方法,此时使用几个事务,使用谁的事务属性定义)
    异常、捕获异常等情况发生时,【有几个事务?用的谁的事务属性?这几个事务都分别是什么操作(提交还是回滚)】

事务的概念介绍到这里,这里已经够用了。