• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > 详解Mybatis的二级缓存配置

详解Mybatis的二级缓存配置

作者:爱军_ 字体:[增加 减小] 来源:互联网 时间:2017-05-28

爱军_ 通过本文主要向大家介绍了mybatis二级缓存详解,mybatis配置文件详解,mybatis注解详解,mybatis详解,详解mybatis的动态sql等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一个项目中肯定会存在很多共用的查询数据,对于这一部分的数据,没必要

每一个用户访问时都去查询数据库,因此配置二级缓存将是非常必要的。

Mybatis的二级缓存配置相当容易,要开启二级缓存,只需要在你的Mapper

映射文件中添加一行:

<cache />

它将采用默认的行为进行缓存:

映射文件中所有的select语句将被缓存

映射文件中所有的insert、update和delete语句将刷新缓存

缓存将使用LRU(Least Recently Used)最近最少使用策略算法来回收

刷新间隔(no Flush Interval,没有刷新间隔),缓存不会以任何时间顺序来刷新

缓存会存储列表集合和对象(无论查询方法返回什么)的1024个引用

缓存会被视为read/write(可读/可写)的缓存,意味着对象检索不是- 共享的,而且可以安全的被调用者修改,而不干扰其他调用者或者线程所做的潜在修改

所有这些属性都可以通过缓存元素的属性来修改,比如:

 <!--1小时缓存-->
 <cache eviction="LRU"
   flushInterval="3600000" size="512"
   readOnly="true"/>
</div>

这个更高级的配置创建了一个FIFO缓存,并每隔3个小时刷新缓存,储存结

果对象或列表的512个引用,而且返回的对象被认为是只读的,因此在不同线程中的调用者之间修改他们会导致冲突。

可用的收回策略有:

【默认】LRU——最近最少使用的:移除最长时间不被使用的对象

FIFO——先进先出的:按对象进入缓存的顺序来移除他们

SOFT——软引用:移除基于垃圾回收器状态和软引用规则的对象

WEAK——弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象。

flushInterval(刷新间隔)可以被设置为任意的正整数(60*60*1000这种形式是不允许的),而且它们代表一个合理的毫秒形式的时间段。默认情况是不设置,也就是没有刷新间隔,缓存仅仅调用语句时刷新。

size(引用数目)可以被设置为任意正整数,要记住你缓存的对象数目和你运行环境的可用内存资源数目。默认值是1024.

readOnly(只读)属性可以被设置为true或false。只读的缓存会给所有调用者返回缓存对象的相同实例,因此这些对象不能被修改,这提供了很重要的性能优势。可读写的缓存会返回缓存对象的拷贝(通过发序列化)。这会慢一些,但是安全,因此默认是false。

配置完表示该mapper映射文件中,所有的select语句都将被缓存,所有的insert、update和delete语句都将刷新缓存。但是实际中,我们并是希望这样,有些select不想被缓存时,可以添加select的属性useCache=“false”;有些insert、update和delete不想让他刷新缓存时,添加属性flushCache=”false ”。

以上所述是小编给大家介绍的Mybatis的二级缓存配置,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解Mybatis的二级缓存配置
  • MyBatis关于二级缓存问题
  • 详解Mybatis的二级缓存配置

相关文章

  • 2017-05-28利用Spring boot如何创建简单的web交互应用
  • 2017-05-28Java经典排序算法之归并排序详解
  • 2017-05-28Java实现一个简单的缓存方法
  • 2017-05-28Java使用正则表达式实现找出数字功能示例
  • 2017-05-28java 实现汉诺塔详解及实现代码
  • 2017-05-28Java去掉数字字符串开头的0三种方法(推荐)
  • 2017-05-28JDK源码之PriorityQueue解析
  • 2017-05-28java中将一个List等分成n个list的工具方法(推荐)
  • 2017-05-28Java通过在主循环中判断Boolean来停止线程的方法示例
  • 2017-05-28浅析Java 数据结构常用接口与类

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详解Java利用ExecutorService实现同步执行大量线程
    • 30分钟入门Java8之默认方法和静态接口方法学习
    • Java身份证验证方法实例详解
    • Spring Boot整合RabbitMQ实例(Topic模式)
    • Java压缩解压zip技术_动力节点Java学院整理
    • 认证流程源码级详解
    • java 中Comparable与Comparator详解与比较
    • Java连接Oracle数据库并查询
    • springboot整合freemarker详解
    • Spring 使用注解方式进行事务管理配置方式

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有