MyBatis中的一级缓存和二级缓存

1.查询缓存
一级缓存:同一个SqlSession对象
Mybatis默认开启一级缓存,如果用同样的SqlSession对象查询相同的数据,则只会在第一次 查询时 向数据库发送SQL语句,并将查询的结果 放入到SQLSESSION 中 后续再次查询该永远 的对象时 则直接从缓存中查询该对象 ,省略了从数据库中的查询,提高了性能。
二级缓存
默认没有开启二级缓存,需要手工打开

		a.进入conf.xml中开启
		
		b. 声明次namespace开启二级缓存
		
		c.触发将对象写入二级缓存的时机:session.close()
		d.准备缓存的对象需要开启序列化接口(接口Serializable 包括其子类)

Mybatis自带二级缓存;

namespace的值 就是 接口的全类名(包名.类名)通过接口产生代理对象
二级缓存的范围:同一个namespace产生的Mapper对象

判断是否为二级缓存;如果是来自于通过一个相同的接口产生的代理对象 那么就是一个二级缓存
是同一个sqlseesion对象 ,不是相同的sqlsession对象 那么 就是从二级缓存中获取的数据

注意:Mybatis的二级缓存 是将对象 放入 硬盘之中

你可能感兴趣的:(MyBatis)