首页 > 其他分享 >016.1MyBatis二级缓存(1)

016.1MyBatis二级缓存(1)

时间:2022-12-07 20:35:20浏览次数:39  
标签:Exception goods 016.1 hashCode 二级缓存 session MyBatis selectOne MyBatisUtils

1.一级缓存和二级缓存

 

 2.缓存的范围

 

 3.二级缓存的运行规则

 

 4.测试一级缓存

  /**
     * 测试一级缓存
     *
     * @throws Exception
     */
    @Test
    public void testLv1Cache() throws Exception
    {
        SqlSession session = null;
        try
        {
            session = MyBatisUtils.openSession();
            Goods goods = session.selectOne("goods.selectById", 1603);
            Goods goods1 = session.selectOne("goods.selectById", 1603);
            System.out.println(goods.hashCode() + ":" + goods1.hashCode());
        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            MyBatisUtils.closeSession(session);
        }

        try
        {
            session = MyBatisUtils.openSession();
            Goods goods = session.selectOne("goods.selectById", 1603);
            session.commit();//commit提交时对该namespace缓存强制清空
            Goods goods1 = session.selectOne("goods.selectById", 1603);
            System.out.println(goods.hashCode() + ":" + goods1.hashCode());
        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            MyBatisUtils.closeSession(session);
        }
    }

5.开启二级缓存

5.1 goods.xml

 <!--开启了二级缓存
        eviction是缓存的清除策略,当缓存对象数量达到上限后,自动触发对应算法对缓存对象清除
            1.LRU – 最近最久未使用:移除最长时间不被使用的对象。
            O1 O2 O3 O4 .. O512
            14 99 83 1     893
            2.FIFO – 先进先出:按对象进入缓存的顺序来移除它们。
            3.SOFT – 软引用:移除基于垃圾收集器状态和软引用规则的对象。
            4.WEAK – 弱引用:更积极的移除基于垃圾收集器状态和弱引用规则的对象。
    -->
    <cache eviction="LRU" flushInterval="600000" size="512" readOnly="true"/>

 

5.2测试用例

 /**
     * 测试二级缓存
     *
     * @throws Exception
     */
    @Test
    public void testLv2Cache() throws Exception
    {
        SqlSession session = null;
        try
        {
            session = MyBatisUtils.openSession();
            Goods goods = session.selectOne("goods.selectById", 1603);
            System.out.println(goods.hashCode());
        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            MyBatisUtils.closeSession(session);
        }

        try
        {
            session = MyBatisUtils.openSession();
            Goods goods = session.selectOne("goods.selectById", 1603);
            System.out.println(goods.hashCode());
        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            MyBatisUtils.closeSession(session);
        }
    }

 

标签:Exception,goods,016.1,hashCode,二级缓存,session,MyBatis,selectOne,MyBatisUtils
From: https://www.cnblogs.com/LLL0617/p/16964450.html

相关文章

  • 【Java】【Mybatis】如何调用存储过程和存储函数
    https://www.jb51.net/article/230756.htmMybatis调用存储过程MyBatis支持使用存储过程的配置。当使用存储过程时,需要设置一个参数“mode”,其值有IN(输入参数)、OUT(输出参......
  • mybatis-plus分页查询详解
    文章目录​​一、官方文档​​​​二、内置的分页方法​​​​1、内置方法​​​​2、selectPage单元测试​​​​3、PaginationInnerInterceptor分页插件配置​​​​三、......
  • Mybatis-Plus主键生成策略详解
    文章目录​​前言​​​​一、官网​​​​二、主键注解@TableId说明​​​​1、源码​​​​2、作用​​​​3、使用​​​​三、主键生成策略-IdType枚举说明​​​​1、......
  • Mybatis
    1.什么是Mybatis?MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本......
  • mybatis plus中使用joda-time
    支持JodaDateTime例如Pojo/Mopackagecom.xxx.crud.eo;importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableFi......
  • mybatis一级缓存和二级缓存使用详解
    文章目录​​一、概念说明​​​​1、一级缓存​​​​2、二级缓存​​​​3、比较​​​​二、mybatis缓存的生命周期​​​​三、一级缓存的使用​​​​四、二级缓存的使......
  • mybatis-plus雪花算法生成Id使用详解
    文章目录​​前言​​​​一、mybatis-plus官网​​​​二、雪花算法实战​​​​1.建表​​​​2.新建测试工程​​​​3.单元测试​​​​三、实现分析​​​​四、为什么......
  • Mybatis-Plus字段策略FieldStrategy详解
    文章目录​​前言​​​​一、官方文档​​​​二、字段策略介绍​​​​1、FieldStrategy作用​​​​2、FieldStrategy类型​​​​3、FieldStrategy配置​​​​全局策略......
  • Mybatis-Plus通过SQL注入器实现真正的批量插入
    文章目录​​前言​​​​一、mysql批量插入的支持​​​​二、Mybatis-Plus默认saveBatch方法解析​​​​1、测试工程建立​​​​2、默认批量插入saveBatch方法测试​​......
  • mybatis-plus雪花算法增强:idworker
    文章目录​​前言​​​​一、官网​​​​二、默认实现的弊端​​​​三、mybatis-plus中datacenterId和workerId的默认生成规则​​​​四、idworker介绍​​​​五、idwo......