缓存的作用是减轻数据库的压力,提高数据库的性能的。mybatis中提供了一级缓存和二级缓存,先来看一下两个缓存的示意图: 从图中可以看出: 这篇博文主要总结一下mybatis中的一级缓存,看一下一级缓存的工作原理: 从图中可以看出:第一次发起查询用户id为1的用户信息,先去找缓存中是否有id为1的用 ...
分类:
其他好文 时间:
2016-09-08 18:08:23
阅读次数:
165
mybatis的延迟加载和缓存技术开始 mybatis一级缓存 mybatis的二级缓存 mybatis默认是没有开启二级缓存的。 开启二级缓存需要在mybatis的全局配置文件sqlMapConfig.xml中加入 除了开启二级缓存开关外,还需要在各自的mapper.xml中开启二级缓存。 原理图 ...
分类:
其他好文 时间:
2016-09-07 22:19:38
阅读次数:
105
hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。 二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等, ...
分类:
其他好文 时间:
2016-09-05 19:11:03
阅读次数:
215
http://www.cnblogs.com/xiaoluo501395377/p/3377604.html 在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别)、二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题。 随笔虽 ...
分类:
Web程序 时间:
2016-08-30 14:46:23
阅读次数:
224
什么是脏检查? 解析:当事务提交时,Hiberante会对Session中持久状态的对象进行检测,判断对象的数据是否发生了改变。 如何进行脏检查? 解析:当一个Dept对象被加入到Session缓存(有人又称为 一级缓存 后者是内部缓存)中时,Session会为Dept对象的值类型的属性复制一份快照 ...
分类:
其他好文 时间:
2016-08-29 13:08:11
阅读次数:
142
Cache缓存在计算机领域是一个被普遍使用的概念。硬件中CPU有一级缓存,二级缓存, 浏览器中有缓存,软件开发中也有分布式缓存memcache, redis。缓存无处不在的原因是它能够极大地提高硬件和软件的运行速度。在项目开发中,性能慢的地方常常是IO操作频繁的地方,读取数据库是我们常见的消耗性能的 ...
分类:
Web程序 时间:
2016-08-22 12:31:50
阅读次数:
153
正式开发,是将mybatis和spring进行整合开发,事务控制在service中。 一个service方法中包括 很多mapper方法调用。 service{ //开始执行时,开启事务,创建SqlSession对象 //第一次调用mapper的方法findUserById(1) //第二次调用ma ...
分类:
其他好文 时间:
2016-08-21 00:49:25
阅读次数:
194
这篇文章讲解一级缓存: 先介绍一级缓存的原理: 1.我们先不看虚线部分: 第一次发起查询用户id为1的用户信息,先去找缓存中是否有id为1的用户信息,如果没有,从数据库查询用户信息。 得到用户信息,将用户信息存储到一级缓存中。 第二次发起查询用户id为1的用户信息,先去找缓存中是否有id为1的用户信 ...
分类:
其他好文 时间:
2016-08-21 00:33:05
阅读次数:
253
mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。 mybaits提供一级缓存,和二级缓存。 一级和二级缓存的示意图: 一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSes ...
分类:
其他好文 时间:
2016-08-20 23:23:09
阅读次数:
318
原文:为什么CPU有多层缓存 译者介绍:杨川,英文名Jerry,就职于IBM全球服务中心。 这是来自于‘jlforrest’的一位读者的提问,我认为值得更详细的解答。以下是他的问题: 我理解缓存,但不明白为什么需要多层缓存而不是直接用一层大的。换句话说,如果一级缓存是32K,二级256K,三级2M, ...
分类:
其他好文 时间:
2016-08-20 00:03:06
阅读次数:
278