《深入理解mybatis原理》 MyBatis缓存机制的设计与实现 本文主要讲解MyBatis非常棒的缓存机制的设计原理,给读者们介绍一下MyBatis的缓存机制的轮廓,然后会分别针对缓存机制中的方方面面展开讨论。 MyBatis将数据缓存设计成两级结构,分为一级缓存、二级缓存: MyBatis中一 ...
分类:
其他好文 时间:
2019-02-09 19:17:08
阅读次数:
174
继续用提问的方式来看Mybatis的缓存设计。 1、Mybatis如何开启缓存 Mybatis对查询结果进行缓存,所以缓存的对象为具体的Statement 通过在Statement上是否使用缓存来启用。 2、谁持有缓存? Mybatis中有两个对象持有缓存。 3、缓存何时开启? 当开启Mapper级 ...
分类:
其他好文 时间:
2019-02-06 17:12:56
阅读次数:
239
一级缓存是sqlsession,是同一个线程使用的,二级缓存是多个线程之间使用的,是namesapce 二级缓存的使用原则: 1 多个namesapce不操作同一张表2 不对有关联的表进行二级缓存3 查询多于修改时候使用二级缓存 使用二级缓存,方式,:使用本身的缓存只需要加上配置<cache />就 ...
分类:
其他好文 时间:
2019-02-03 12:49:15
阅读次数:
112
一、问题场景模拟问题:第二次查询和第一次查询结果一模一样,没有查询出我新插入的数据 猜测:第二次查询走了Mybatis缓存 疑问:那为什么会走缓存呢? 1.service方法 2.dao方法 二、解决方法 是因为dao的方法注解使用错了 将@SelectProvider换成@InsertProvid ...
分类:
其他好文 时间:
2019-01-19 16:28:32
阅读次数:
347
Mybatis一级缓存与二级缓存 (一)一级缓存 Mybatis在没有配置的情况下默认开启一级缓存,一级缓存指相对于同一个sqlsession而言,sqlsession使用map存储对象,map存储了sql查询的结果集,在操作数据库时需要构建sqlsession对象,在对象中有一个数据结构用于存储缓 ...
分类:
其他好文 时间:
2019-01-13 15:26:03
阅读次数:
180
MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。缓存可以极大的提升查询效率。MyBatis系统中默认定义了两级缓存, 一级 缓存和 二级缓存。– 1、默认情况下,只有一级缓存(SqlSession级别的缓存,也称为本地缓存)开启,一级缓存默认实现类org.apache.i... ...
分类:
其他好文 时间:
2019-01-05 00:13:44
阅读次数:
226
springboot+mybatis+缓存,基本的用法想必是会了,现在说一说内部大概的原理。 稍微提一下mybatis,只要导入了mybatis的依赖,那么有个自动配置类就会生效,你可以去mybatis的jar包里面的META-INF/spring.factories中看到这个xxxAutoConf ...
分类:
编程语言 时间:
2018-11-27 11:11:12
阅读次数:
207
继续接着上一节,大家应该知道驼峰命名法吧!就是我们javabean中属性一般命名是lastName,userName这种类型的,而数据库中列名一般都是last_name,user_name这种的,要让对应起来,在springboot中可以设置 另外大家可以看看我们用了mybatis依赖之后,导入了一 ...
分类:
编程语言 时间:
2018-11-26 13:51:59
阅读次数:
313
上一篇结束,第一次做一个这么长的系列,很多东西我也是没有说到,也许是还没有想到,哈哈哈,不过基本的东西还是说的差不多了的。假如以后碰到了不会的,随便查查资料配置一下就ok。 咳,还有大家如果把我前面的消化的差不多的话,那么应该从萌新成长到新人了,嘿嘿!所以我把这一篇题目叫做带着新人学@_@! 萌新阶 ...
分类:
编程语言 时间:
2018-11-25 17:51:46
阅读次数:
181
MyBatis 提供了一级缓存和二级缓存的支持。 一级缓存 一级缓存是基于PerpetualCache 的 HashMap本地缓存; 一级缓存的作用域是SqlSession,即不同的SqlSession使用不同的缓存空间; 一级缓存的开启和关闭 一级缓存是默认开启的; 关闭一级缓存需要在mybati ...
分类:
其他好文 时间:
2018-11-24 23:54:13
阅读次数:
274