博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存
阅读量:6576 次
发布时间:2019-06-24

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

设置延迟加载需要在mybatis.xml中设置

注:

侵入式延迟加载为真时是延迟加载

侵入式延迟加载为假时是深度延迟加载

 

一级缓存

注:

1.框架底层使用map集合存储缓存

2.MyBatis查询缓存机制。根据缓存区的作用域与生命周期,可划分为两种:一级缓存和二级缓存.MyBatis查询缓存的作用域是根据映射文件的namespace划分的,相同的namespace的mapper查询数据放在同一个缓存区域。不同namespace下的数据互不干扰。无论是一级缓存还是二级缓存,都是按照namespace进行分别存放的.一级、二级缓存的不同之处在于,SqlSession一旦关闭,则SqlSession中的数据将不存在,即一级缓存就不复存在。而二级缓存的生命周期与真个应用同步,与SqlSession是否关闭无关.换句话说,一级缓存是在同一线程(同一SqlSession)间共享数据,而二级缓存是在不同线程(不同的SqlSession)间共享数据。

3.Mybatis一级缓存默认集成并开启

4.MyBatis的查询依据是:Sql的id+SQL语句

5.执行增删改时会清空缓存,虽然 底层都是update但是,sql标签必须对应操作,不然起到清空缓存的作用

 

二级缓存

1,开启二级缓存3个条件

(1)在mybatis中设置cacheEnabled=true

(2)在Mapper文件中添加<cache/>标签

(3)实体类必须实现serialize接口

 

转载于:https://www.cnblogs.com/cnsdhzzl/p/6203571.html

你可能感兴趣的文章
Redhat7/Centos7 修改默认启动内核方法二
查看>>
我的友情链接
查看>>
java基础语法注意点归纳总结
查看>>
node上HTML分析利器node-jquery
查看>>
利用Node.js为Node.js生成HttpStatusCode辅助类并发布到npm
查看>>
存储器系统课后习题参考答案
查看>>
CodeFile与CodeBehind的区别
查看>>
Ruby on rails初体验(一)
查看>>
CentOS 无法使用pstree命令
查看>>
rsync+inotify实现实时同步
查看>>
Android sdk 镜像服务器资源
查看>>
VS Python环境安装第三方包 pip改国内源
查看>>
TCP和UDP的区别
查看>>
R语言:利用caret包中的dummyVars函数进行虚拟变量处理
查看>>
Your data vis “Spidey-sense” & the need for a robust “utility belt”
查看>>
揭东县信息中心采用We7站群管理系统重新架构揭东县政务网
查看>>
(转)C#对FTP的操作(上传,下载,重命名文件,删除文件,文件存在检查)
查看>>
baidu 快递查询API
查看>>
Linux进程通信----匿名管道
查看>>
Dubbox的介绍和简单示例
查看>>