Mybatis整合第三方缓存ehcache

第三方缓存主要是来壮大Mybatis的二级缓存。

Mybatis整合第三方缓存原理图:

Mybatis整合第三方缓存ehcache_第1张图片

解读:

1、客户从数据库获取数据视为一次会话,抽象为sqlSession对象

2、一个Excutor包含增删改查的操作;

3、CachingExcutor是对Excutor的包装,此处相当于代理模式

4、当有会话时,先访问CachingExcutor对象,CachingExcutor先从二级缓存查找数据,如果有就直接返回;如果没有,就进入Excutor的一级缓存,如果还是没有就执行Excutor的增删改查返回结果,并将结果保存至缓存中,同一个sqlSession再次访问就可以从一级缓存中取了;

5、由于mybatis的缓存只用了map实现,所以mybatis允许缓存由第三方缓存来实现,并定义了cache接口,第三方只要实现该接口即可,和mybatis整合在一起后由mybatis在程序中进行调用;

一、下载相关jar包

1、下载ehcache源码包

下载地址:https://mvnrepository.com/artifact/net.sf.ehcache/ehcache-core/2.6.8

Mybatis整合第三方缓存ehcache_第2张图片

或者,用maven导入:



    net.sf.ehcache
    ehcache-core
    2.6.8

如图:

2、下载其依赖的日志包sl4j

2.1  下载slf4j-api.jar包

https://mvnrepository.com/artifact/org.slf4j/slf4j-api/1.7.25

或者maven配置:



    org.slf4j
    slf4j-api
    1.7.25

2.2 下载slf4j-log4j12.jar包

https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12

或者maven配置:



    org.slf4j
    slf4j-log4j12
    1.7.25
    test

如图:

3、下载mybatis和ehcache的适配包

方式一:github上下载

https://github.com/mybatis/ehcache-cache/releases

Mybatis整合第三方缓存ehcache_第3张图片

 方式二:maven仓库中下载

https://mvnrepository.com/artifact/org.mybatis.caches/mybatis-ehcache/1.0.3

方式三:maven配置自动导入



    org.mybatis.caches
    mybatis-ehcache
    1.0.3

如图:

4、还需要一个ehcache.xml



 
 
 
 
 

 

二、整合mybatis

1、将准备好的jar包和xml导入到项目中

Mybatis整合第三方缓存ehcache_第4张图片

Mybatis整合第三方缓存ehcache_第5张图片

2、mapper.xml中使用自定义缓存





	

 	
 	

3、测试

@Test
public void testSecondLevelCache() throws IOException{
	SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
	SqlSession openSession = sqlSessionFactory.openSession();
	SqlSession openSession2 = sqlSessionFactory.openSession();
	try{

		EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
		EmployeeMapper mapper2 = openSession2.getMapper(EmployeeMapper.class);
		
		Employee emp01 = mapper.getEmpById(1);
		System.out.println(emp01);
		openSession.close();
		
		//第二次查询是从二级缓存中拿到的数据,并没有发送新的sql
		Employee emp02 = mapper2.getEmpById(1);
		System.out.println(emp02);
		openSession2.close();
		
	}finally{
		
	}
}

结果:

Mybatis整合第三方缓存ehcache_第6张图片

说明:只查询了一次sql,所以第二次访问是从ehcache缓存中拿的,

并且在D:\44\ehcache目录下也会有相关数据:

Mybatis整合第三方缓存ehcache_第7张图片

注: 如果其他mapper.xml需要使用缓存,可进行引用mapper

 

 

======以下于你或许是个好消息======

 

好消息就是:欢迎访问下面的博客网站哈哈哈......

 

网站名称:Java学习笔记网  (点击进入)

url:https://www.javaxxbj.com/ (点击进入)

网站特点:

  1. java主要网站的导航目录
  2. 你可以记录自己的博客,并可以控制显示和隐藏,可利于管理啦!!!
  3. 可以添加收藏各个网站的链接!!!
  4. 甚至也可以文章收藏,点赞,关注,查看我的消息等功能哦!!1

看一小点点的截图:

或可一试哦!

你可能感兴趣的:(Mybatis,Mybatis缓存)