资讯专栏INFORMATION COLUMN

MyBatis 二级缓存

DirtyMind / 2567人阅读

摘要:二级缓存需要在映射文件中添加该标签映射语句中的语句将会被缓存映射语句中的语句将会刷新缓存缓存使用算法回收现在完整的配置文件如下定义接口类为主键映射关系其中数据库中的为主键为其他基本数据类型和实体类之间的映射映射关

二级缓存

需要在映射文件中添加该标签

    

映射语句中的select语句将会被缓存, 映射语句中的insert update delete 语句将会刷新缓存
缓存使用LRU算法回收
现在完整的配置文件如下





    
    
        
        
        
        
        
        
    
    
    
    
    
    
    
    
    
    
        
        
        
        
        
        
    

    
    
    
        
        
        
        
        
        
        
    
    
    
    
    

返回的POJO对象需要实现java.io.Serializable的接口

同样也可以修改

    

java的几种引用

强引用
Object object = new Object();

这是强引用,当其赋值为null的时候,若内存空间不足,gc会直接清理掉该内存对象

软引用

需要使用SoftReference类,实现软引用

String str = new String("ming");      // 强引用
SoftReference softRef = new SoftReference(str);    // 软引用

这里为软引用
当内存不足时,会转换为软引用,垃圾回收器进行回收

使用场景 浏览器的回退按钮

弱引用

一旦不定时运行的垃圾回收其发现有弱引用对象,将会直接回收该对象

需要使用WeakReference

String str = new String("ming");
WeakReference weakReference = new WeakRefrence(str);

当垃圾回收其扫描到回收对象的时候,会直接进行回收掉

弱引用需要和引用队列联合使用

虚引用

如果一个对象仅仅持有虚引用,那么就和没有一样.使用的是PhantomReference
虚引用要和引用队列一起使用,垃圾回收线程回收该线程时,会发送一个系统通知,达到通知的作用.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74217.html

相关文章

  • Mybatis【逆向工程,缓存,代理】知识要点

    摘要:一级缓存值得注意的地方默认就是支持一级缓存的,并不需要我们配置和整合后进行代理开发,不支持一级缓存,和整合,按照的模板去生成代理对象,模板中在最后统一关闭。总结的一级缓存是级别的。 前言 本文主要讲解Mybatis的以下知识点: Mybatis缓存 一级缓存 二级缓存 与Ehcache整合 Mapper代理 使用Mapper代理就不用写实现类了 逆向工程 自动生成代码 ...

    wanglu1209 评论0 收藏0
  • MyBatis知识点整理

    摘要:得到用户信息,将用户信息存储到一级缓存中。如果中间去执行操作执行插入更新删除,则会清空中的一级缓存,这样做的目的为了让缓存中存储的是最新的信息,避免脏读。 基础: 1、 概念:Java当中的一个持久层框架。2、 特点、优势:(1)把java代码和SQL代码做了一个完全分离。(2)良好支持复杂对象的映射(输入映射、输出映射)(3)使用动态SQL,可以预防SQL注入。3、 ...

    zhangqh 评论0 收藏0
  • MyBatis缓存介绍

    摘要:缓存介绍正如大多数持久层框架一样,同样提供了一级缓存和二级缓存的支持一级缓存基于的本地缓存,其存储作用域为,当或之后,该中的所有就将清空。一级缓存实现对的操作内部都是通过来执行的。 MyBatis缓存介绍   正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持   一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Se...

    mingde 评论0 收藏0
  • Mybatis缓存

    摘要:一级缓存和二级缓存缓存将语句查询出来对应的对象进行缓存,供后续对象使用。所以说,一级缓存是基于的。为了解决相互共享问题,提供二级缓存解决该问题。注意,一级缓存对每个对象要求他们在所有语句后必须执行语句,否则,不存在一级缓存。 Mybatis缓存 因为热爱,所以拼搏。 --RuiDer 前导必备 - 数据库 - Mybatis Mybatis缓存 Mybatis提供缓存...

    mrcode 评论0 收藏0

发表评论

0条评论

DirtyMind

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<