首页 > 代码库 > JDBC事务

JDBC事务

  1. 事务是指逻辑上的一组操作,组成这组操作的各个单元要么全部成功,要么全部失败
  2. 事务的特性
    1. 原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生
    2. 一致性:事务前后数据的完整性必须保持一致
    3. 隔离性:事务的隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发的事务之间数据要隔离
    4. 持久性:持久性是指一个事务一旦提交,它对数据库中的数据改变就是永久性的
  3. 并发访问问题
    1. 脏读:一个事务读到另一个事务未提交的数据
    2. 不可重复读:一个事务读到另一个事务已经提交的数据,引发另一个事务,在事务中出现多次查询结果不一致
    3. 虚读/幻读:一个事务读到另一个事务已经提交的数据,导致另一个事务,在事务中出现多次查询结果不一致(在于新增和删除)
  4. 隔离级别:解决问题

    * read uncommitted        :脏读,不可重复读,虚读都可能发生.

    * read committed    :避免脏读,但是不可重复读和虚读有可能发生.

    * repeatable read    :避免脏读和不可重复读,但是虚读有可能发生的.

    * serializable             :避免脏读,不可重复读和虚读.(串行化的-不可能出现事务并发访问)

  5. 数据的隔离级别
    1. mysql  repeatable read 
      Oracle  read committed
 

JDBC事务