Mybatis笔记

Mybatis笔记

2020.06.06

Mybatis

  • mybatis【总结】 (3y)
  • mybatis【入门】 (3y)
  • mybatis【配置文件】(3y)
  • mybatis【关联映射】(3y)
  • mybatis【缓存、代理、逆向工程】(3y)
  • mybatis【与Spring整合】(3y)
  • mybatis【面试题】(3y)

2020.06.22

jdbc事务的隔离级别

数据库定义了4个隔离级别:

  1. Serializable【可避免脏读,不可重复读,虚读】
  2. Repeatable read【可避免脏读,不可重复读】
  3. Read committed【可避免脏读】
  4. Read uncommitted【级别最低,什么都避免不了】
    分别对应Connection类中的4个常量
  5. TRANSACTION_READ_UNCOMMITTED
  6. TRANSACTION_READ_COMMITTED
  7. TRANSACTION_REPEATABLE_READ
  8. TRANSACTION_SERIALIZABLE

脏读:⼀个事务读取到另外⼀个事务未提交的数据

例⼦:A向B转账,A执⾏了转账语句,但A还没有提交事务,B读取数据,发现⾃⼰账户钱变多了!B跟 A说,我已经收到钱了。A回滚事务【rollback】,等B再查看账户的钱时,发现钱并没有多。

不可重复读:⼀个事务读取到另外⼀个事务已经提交的数据,也就是说⼀个事务可以看到其他事务所做的修改

//关闭事务【⾃动提交】
connection.setAutoCommit(true);
} catch (SQLException e1) {
e1.printStackTrace();
}
注:A查询数据库得到数据,B去修改数据库的数据,导致A多次查询数据库的结果都不⼀样【危害:A
每次查询的结果都是受B的影响的,那么A查询出来的信息就没有意思了】

虚读(幻读):是指在⼀个事务内读取到了别的事务插⼊的数据,导致前后读取不⼀致。
注:和不可重复读类似,但虚读(幻读)会读到其他事务的插⼊的数据,导致前后读取不⼀致
简单总结:脏读是不可容忍的,不可重复读和虚读在⼀定的情况下是可以的【做统计的肯定就不⾏】。

你可能感兴趣的:(Mybatis笔记)