mybatis一级缓存和二级缓存的区别?

mybatis一级缓存和二级缓存?

  • 一级缓存(本地缓存)

1.mybatis一级缓存是SqlSession级别的缓存
2.在操作数据库的时候需要构造sqlsession对象,在对象中有一个数据结构(HashMap)用于存储数据。
3.不同的Sqlsession之间的缓存数据区域是互相不影响的,是独立的
4.一级缓存是框架默认为我们开启的,我们不需要做任何配置

//key:statementId和sql语句
//value:查询结果

例图:mybatis一级缓存和二级缓存的区别?_第1张图片

  • 二级缓存(全局缓存)

二级缓存是mapper级别的缓存,多个Sqlsession去操作一个mapper.xml语句,多个sqlseesion共用一个二级缓存,

//key:hashCode + statementId + SQL语句
//value:查询结果

开启二级缓存步骤:

  • 1.先在mybatis的配置文件中加入:
<setting>
	
	<setting name="cacheEnabled" value="true" />
setting>
  • 2.在对应的mapper.xml文件中加入cache标签
<cache />
  • 3.让使用二级缓存的entity类实现Serializable接口

你可能感兴趣的:(java,缓存,java,开发语言)