缓存
MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。MyBatis 3 中的缓存实现的很多改进都已经实现了,使得它更加强大而且易于配置。
Mybatis和Hibernate一样,也有一级和二级缓存,同样默认开启的只有一级缓存,二级缓存也需要手动配置开启.
通过一个实验,验证一级缓存的存在:
一级缓存又被称为session级别的缓存,mybatis一直默认是开启的,每个与数据库的链接回话都有各自自己的缓存,这些一级缓存之间是不能通信的,是相互独立的缓存空间!
通过几次实验,加深对一级缓存的理解:
第一个实验,查询同一个id的用户,但是用不同的sqlsession
第二个实验,用同一个session,但是查询的id不一样:
第三个实验,还是同一个session,查询相同id的user,但查询中间,手动把session里的缓存干掉:
第四个实验,还是同一个session,查询相同id的user,查询中间,做了增改删: