博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis缓存
阅读量:5730 次
发布时间:2019-06-18

本文共 840 字,大约阅读时间需要 2 分钟。

hot3.png

1、一级缓存,默认开启,属于sqlsession级别的缓存

特点:1.1 不同的sqlsession对象不能互用缓存

          1.2 当salsession对象调用 clearCache() 方法时,会自动清理缓存的数据,不影响sqlsession的正常使用

          1.3 当sqlsession对象关闭时 (调用了 close方法),sql对象就不能再使用了

          1.4 当两次相同的查询中间,有增删改的操作时,缓存中的数据会被清除掉  

一级缓存通过简单的Map集合来实现,没有对Map集合的大小容量做限制

 

2、二级缓存,需要手动开启和配置,namespace级别的缓存,一个xml文件对应一个二级缓存

2.1 配置开启二级缓存

总的配置文件中添加   <settung name="caacheEnabled" value="true" />

在映射文件中添加cache属性 <cache></cache>   相当于所有的select标签都开启了二级缓存

<select id="findById" resultType="com.kobe.model.user" useCache="true">

如果需要关闭某个查询的二级缓存  只需在标签中将  useCache属性设置为 false 即可

<select id="findById" resultType="com.kobe.model.user" useCache="false">

在新的sqlsession对象使用二级缓存中的数据时,需要先将前面的sqlsesson对象关闭,数据才会进入到缓存中

开启二级缓存后会先从二级缓存中查找,没有的话再去一级缓存中查找,再没有的话才从数据库中查找。

(springboot项目使用mybatis缓存在配置文件中设置  mybatis.configuration.cache-enabled=true)

 

 

 

转载于:https://my.oschina.net/xiaozhiwen/blog/1920842

你可能感兴趣的文章
sql语句返回主键SCOPE_IDENTITY()
查看>>
MongoDB培训
查看>>
机器学习开源项目精选TOP30
查看>>
python基础===对字符串进行左右中对齐
查看>>
一起谈.NET技术,ASP.NET缓存全解析6:数据库缓存依赖
查看>>
ABAP程序互调用:SUBMIT、CALL TRANSACTION、LEAVE TO TRANSACTION
查看>>
HDU5014Number Sequence(贪心)
查看>>
代码分析系列 内存执行过程
查看>>
iOS开发-邮件发送
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>
System.gc()与Object.finalize()的区别
查看>>
Memcache存储大数据的问题
查看>>
HTML5区域范围文本框实例页面
查看>>
oracle查看经常使用的系统信息
查看>>
android:layout_gravity和android:gravity属性差异
查看>>
hadoop-ha组态
查看>>
关于jave在oracle驱动下事务提交与回滚问题
查看>>
Python+Django+SAE系列教程15-----输出非HTML内容(图片/PDF)
查看>>