SSM框架之MyBatis缓存机制

一级缓存的原理

同一个SqlSession对象多次执行完全相同的SQL语句时,在第一次执行完后,MyBatis会自动将查询结果写入到一级缓存,这样,当下次执行相同的查询语句时,就不用再次提交SQL语句到数据库,直接从缓存中拿到数据。
当执行插入,更新,删除操作后,缓存会清空,以防止误读。
一级缓存不需要手动设置。

例如通过学号sid查询学生信息:
SSM框架之MyBatis缓存机制_第1张图片

二级缓存的原理

当开启二级缓存后,MyBatis以namespace区分Mapper,如果多个sqlSession使用同一个Mapper执行相同的操作,MyBatis会将第一次操作写入二级缓存,这样其他的sqlSession对象在执行时会直接从二级缓存中拿到数据,不需重复提交sql语句到数据库;
在update,delete,insert操作后,会自动把缓存中的数据清空,以防止误读

例如:
SSM框架之MyBatis缓存机制_第2张图片
二级缓存需手动开启,具体操作如下:
在配置文件里打开二级缓存`

		
		  
			
		
		...
		

在映射文件下开启当前Mapper的二级缓存:

		
		   
		...
		

你可能感兴趣的:(mybatis,数据库,sql,java)