MyBatis
Catalina_yep
这个作者很懒,什么都没留下…
展开
-
MyBatis(三)-----源码解析(一)
分析源码,我们还是从编程式的 demo 入手 InputStream inputStream = Resources.getResourceAsStream(resource);//步骤1 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//步骤2 SqlSession session = sqlSessionFactory.openSessi原创 2020-12-01 10:18:21 · 83 阅读 · 1 评论 -
MyBatis(一)-----MyBatis中的二级缓存
一.二级缓存的介绍1)二级缓存是用来解决一级缓存不能跨会话共享的问题的,范围是namespace级别的,可以被多个SqlSession共享(只要是同一个接口里面的相同方法,都可以共享),生命周期和应用同步二.面试题1.如果开启了二级缓存,二级缓存应该是工作在一级缓存之前,还是在一级缓存之后呢?二级缓存是在哪里维护的呢? 答:作为一个作用范围更广的缓存,它肯定是在SqlSession的外层,否则不可能被多个SqlSession共享。而一级缓存是在SqlSession内部的,所以第一个问题,肯定是工作在原创 2020-11-30 22:39:47 · 220 阅读 · 0 评论 -
MyBatis(一)-----MyBatis中的一级缓存
一.概述1.MyBatis跟缓存相关的类都在cache包里面,其中有一个Cache接口,只有一个默认的实现类PerpetualCache,它是用HashMap实现的,除此之外,还有很多的装饰器,通过这些装饰器可以额外实现很多的功能2.所有的缓存实现类总体可分为三类:基本缓存,淘汰算法缓存,装饰器缓存二.一级缓存1.特点:1)一级缓存是在会话(SqlSession)层面进行缓存的2)默认是开启的,不需要任何的配置3)PerpetualCache对象是放在Executor里面维护的----原创 2020-11-30 22:26:50 · 156 阅读 · 0 评论