zoukankan      html  css  js  c++  java
  • 通用Mapper(十)二级缓存

    二级缓存

    一、开启二级缓存

      1、在 MyBatis 的配置文件中开启二级缓存

        <settings>
            <setting name="cacheEnabled" value="true"/>
        </settings>

      2、在使用的 Mapper 接口上面添加注解 @CacheNamespace

    @CacheNamespace
    public interface EmployeeMapper extends MyMapper<Employee> {
    
    }

      3、实体类需要支持序列化

        二级缓存会把对象放在缓存里面,需要实现序列化接口。

    public class Employee implements Serializable{}

    二、测试

      测试代码:

    public class CacheTest {
        private ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml");
        private EmployeeService employeeService = ioc.getBean(EmployeeService.class);
    
        @Test
        public void test() {
            List<Employee> emp = employeeService.getAll();
            emp.forEach(System.out::println);
    
            emp = employeeService.getAll();
            emp.forEach(System.out::println);
        }
    }
    
        public List<Employee> getAll() {
            return employeeMapper.selectAll();
        }

      运行结果:

        第一次查询:

         第二次查询:

         可以看到二级缓存生效了,没有重新发送SQL语句,是从缓存中获取的,缓存命中率为 0.5

    三、总结

      1、在 MyBatis 的配置文件中开启二级缓存

      2、在使用的 Mapper 接口上面添加注解 @CacheNamespace

      3、实体类需要支持序列化

  • 相关阅读:
    java
    JAVA的String 类
    JAVA的StringBuffer类
    TestLink 的使用详解
    Vertrigo Serv + testlink 环境搭建
    自动化测试全聚合
    selenium -文件上传的实现 -对于含有input element的上传
    chrome启动参数设置
    selenium
    java
  • 原文地址:https://www.cnblogs.com/niujifei/p/15303498.html
Copyright © 2011-2022 走看看