我们首先要知道mybatis中的一级缓存是在没有关闭session的时候,执行相同的select时候,二次以后的查询不会发送select语句至数据库,以减少对数据库的联机操作。 二级缓存是建立了2个session以后执行相同的select语句后依然也不会再数据库执行select语句,而内容依然从缓存中读取出来。 (2)pojo映射类实现Serializable接口 (3) Mapper数据库操作接口 (4) Mapper接口映射配置文件 (5)测试类 (6)运行结果1
我们看一下如果使用mybatis的二级缓存;希望大家可以仔细阅读,里面有一些注意细节,这些细节对于初学者很有帮助。
(1)在mybatis的核心配置文件中开启二级环境配置

<settings> <!--开启二级缓存的全局配置 --> <setting name="cacheEnabled" value="true"/> </settings> package com.zxf.pojo; import java.io.Serializable; public class Employee implements Serializable{ private String emp_no; private String emp_name; private String dept_id; private String emp_gender; public String getEmp_gender() { return emp_gender; } public void setEmp_gender(String emp_gender) { this.emp_gender = emp_gender; } public String getDept_id() { return dept_id; } public void setDept_id(String dept_id) { this.dept_id = dept_id; } public String getEmp_name() { return emp_name; } public void setEmp_name(String emp_name) { this.emp_name = emp_name; } public String getEmp_no() { return emp_no; } public void setEmp_no(String emp_no) { this.emp_no = emp_no; } } public interface EmployeeMapper { public List<Employee> getAll4(); } <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zxf.mapper.EmployeeMapper"> <!--二级缓存 --> <cache eviction="FIFO" flushInterval="6000" readOnly="false" size="1024"></cache> <select id="getAll4" resultType="emp"> select <include refid="emp_1"/> from employee_basic </select> </mapper> @Test public void test2() throws Exception{ InputStream is= Resources.getResourceAsStream("mybatis_config.xml"); SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is); SqlSession session1=factory.openSession(); SqlSession session2=factory.openSession(); EmployeeMapper mapper1 = session1.getMapper(EmployeeMapper.class); EmployeeMapper mapper2=session2.getMapper(EmployeeMapper.class); List<Employee> all_1 = mapper1.getAll4(); List<Employee> all_2 = mapper2.getAll4(); for(Employee e:all_1){ System.out.println(e.getEmp_name()+":"+e.getEmp_no()); } session1.close(); /* 这里要记住一个地方,第二次查询必须要等第一次的session关闭以后才可以。 否则二级缓存没有作用,依然还会执行二次select语句发送至数据库 */ for(Employee e:all_2){ System.out.println(e.getEmp_name()+"===>"+e.getEmp_no()); } session2.close(); }


运行结果2



本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)