mybatis缓存的设计
发布时间:2020-12-14 18:06:32 所属栏目:大数据 来源:网络整理
导读:继续用提问的方式来看Mybatis的缓存设计。 1、Mybatis如何开启缓存 Mybatis对查询结果进行缓存,所以缓存的对象为具体的Statement 通过在Statement上是否使用缓存来启用。 useCache ="true" >useCache默认值为true 2、谁持有缓存? ?Mybatis中有两个对象持有
继续用提问的方式来看Mybatis的缓存设计。 1、Mybatis如何开启缓存 Mybatis对查询结果进行缓存,所以缓存的对象为具体的Statement 通过在Statement上是否使用缓存来启用。 2、谁持有缓存? ?Mybatis中有两个对象持有缓存。 CachingExecutor以及BaseExecutor
CachingExecutor和SimpleExecutor的关系是持有的关系 CachingExecutor <span style="color: #0000ff">private <span style="color: #0000ff">final<span style="color: #000000"> Executor delegate;
<span style="color: #0000ff">private <span style="color: #0000ff">final TransactionalCacheManager tcm = <span style="color: #0000ff">new TransactionalCacheManager(); 3、缓存何时开启? 当开启Mapper级别的缓存时,
缓存 失效
? ? ? ? ?
两次查询,只访问了数据库1次.第二次不再请求数据库
? ? ?
? 配置缓存参数 ? 结果出乎意料,缓存竟然没有命中。分析下原因: ? 即使打开了
6、Mybatis设计的目的 简单,不配置也可以使用。用与在一个sqlSession中多次使用相同条件多次查询。 7、Mybatis设计的目的 增强版,也支持事物级别的缓存,同时支持不同sqlSession之间的共享。扩大可缓存的可用性。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |