mybatis一级二级
时间: 2024-08-23 19:02:57 浏览: 42
MyBatis是一种轻量级的对象关系映射(ORM)框架,它支持数据库访问的高级特性,包括一对多、一对一等关联关系处理。在MyBatis中,通常将SQL查询分为一级缓存和二级缓存两个级别:
1. **一级缓存(First Level Cache, 简称一级缓存)**:这是针对特定的SqlSession实例的缓存,即对于每个SqlSession,都会维护一个本地缓存,如果相同的查询多次执行且数据未发生变化,MyBatis会直接从一级缓存中获取结果,避免了与数据库的交互,提高了性能。
2. **二级缓存(Second Level Cache, 简称二级缓存)**:当一个全局的SqlSessionFactory实例被创建后,所有共享这个SqlSessionFactory的SqlSession实例都可以访问到同一份二级缓存。这意味着在多个SqlSession之间可以共享数据,减少了网络IO。不过这需要开发者显式开启并配置二级缓存,并选择合适的缓存策略,如EHCache、Redis等。
相关问题
mybatis一级缓存和二级
MyBatis一级缓存和二级缓存区别如下:
一级缓存是SqlSession级别的缓存,当我们发起一次查询时,MyBatis会先到SqlSession缓存中查询是否有这个结果,如果有,直接返回缓存结果,如果没有,就去数据库中查询结果,查询完结果后,将结果放入SqlSession缓存中。
二级缓存是Mapper级别的缓存,当我们发起一次查询时,MyBatis会先到Mapper缓存中查询是否有这个结果,如果有,直接返回缓存结果,如果没有,就去数据库中查询结果,查询完结果后,将结果放入Mapper缓存中。二级缓存通常会开启,但是并不是所有的Mapper都需要开启二级缓存,需要根据具体情况进行配置。
MyBatis一级缓存和二级缓存
MyBatis一级缓存和二级缓存区别如下:
一级缓存是SqlSession级别的缓存,当我们发起一次查询时,MyBatis会先到SqlSession缓存中查询是否有这个结果,如果有,直接返回缓存结果,如果没有,就去数据库中查询结果,查询完结果后,将结果放入SqlSession缓存中。
二级缓存是Mapper级别的缓存,当我们发起一次查询时,MyBatis会先到Mapper缓存中查询是否有这个结果,如果有,直接返回缓存结果,如果没有,就去数据库中查询结果,查询完结果后,将结果放入Mapper缓存中。二级缓存通常会开启,但是并不是所有的Mapper都需要开启二级缓存,需要根据具体情况进行配置。
阅读全文