java|mybatis一级缓存和二级缓存的区别()

mybatis一级缓存和二级缓存?

  • 一级缓存(本地缓存)
1.mybatis一级缓存是SqlSession级别的缓存
2.在操作数据库的时候需要构造sqlsession对象,在对象中有一个数据结构(HashMap)用于存储数据。
3.不同的Sqlsession之间的缓存数据区域是互相不影响的,是独立的
4.一级缓存是框架默认为我们开启的,我们不需要做任何配置
//key:statementId和sql语句
//value:查询结果
例图:java|mybatis一级缓存和二级缓存的区别()
文章图片

  • 二级缓存(全局缓存)
二级缓存是mapper级别的缓存,多个Sqlsession去操作一个mapper.xml语句,多个sqlseesion共用一个二级缓存,
//key:hashCode + statementId + SQL语句
//value:查询结果
【java|mybatis一级缓存和二级缓存的区别()】开启二级缓存步骤:
  • 1.先在mybatis的配置文件中加入:
> name="cacheEnabled" value="https://www.it610.com/article/true" />

  • 2.在对应的mapper.xml文件中加入cache标签

  • 3.让使用二级缓存的entity类实现Serializable接口

    推荐阅读