一级缓存 SqlSession
由sqlsession查询的结果将会自动保存在sqlsession中提供的一块区域中 ,该区域结构是一个Map,当我们查询同样的数据时,MyBatis会先去sql session中查询是否有改数据 如果有就直接拿出来用,减少与数据库的交互,提高执行效率
当 sqlsession对象消失时, mybatis的以及缓存就会消失。
当sqlsession执行close 是关闭 执行clearcachec清除缓存,但是没有关闭sqlsession
一级缓存配置(在SqlMapConfig中 settings标签中配置)
二级缓存
二级缓存是由sqlsessionFactory对象的缓存,同一个sqlsessionFactory创建的多个sqlsession对象查询到的数据进行数据共享