mybatis二级缓存

5 篇文章 0 订阅
5 篇文章 0 订阅

mybatis一级缓存为SqlSession级别的缓存,在sqlSession关闭之前,重复的查询系统会先在一级缓存中查找。

二级缓存为mapper级别的缓存,多个sqlSession共用一个二级缓存。开启二级缓存后,系统在一级缓存中找不到数据会在二级缓存中查找。

在mybatis中开启二级缓存需要如下配置:

mybatis的配置文件mybatis-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org/DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
     <!-- 加载属性文件 -->
     <properties resource="db.properties"></properties>
     <!-- 启用二级缓存 -->
     <!-- setting元素应放在properties之后,typeAliases之前,否则配置文件会报错 -->
     <settings>
         <setting name="cacheEnabled" value="true"/>
     </settings>
     <!-- 给包中的类注册别名 -->
     <typeAliases>
         <package name="com.mybatis.pojo"></package>
     </typeAliases>
     <!-- 配置环境 -->
     <environments default="development">
         <!-- 配置一个id为development的环境 -->
         <environment id="development">
             <!-- 使用JDBC事务 -->
             <transactionManager type="JDBC" />
             <!-- 连接数据池 -->
             <dataSource type="POOLED">
                 <property name="driver" value="${jdbc.driver}" />
                 <property name="url" value="${jdbc.url}"/>
                 <property name="username" value="${jdbc.username}" />
                 <property name="password" value="${jdbc.password}" />
             </dataSource>
         </environment>
     </environments>
     <!-- 引用映射文件 -->
     <mappers>
        <mapper resource="com/mybatis/mapper/UserInfoMapper.xml" />
     </mappers>
</configuration>

启用二级缓存:

在mybatis-config.xml文件中配置:

<!-- 启用二级缓存 -->
     <!-- setting元素应放在properties之后,typeAliases之前,否则配置文件会报错 -->
     <settings>
         <setting name="cacheEnabled" value="true"/>
     </settings>

在UserInfoMapper.xml中配置(在mapper标签内):

 <!-- 开启二级缓存 -->
 <cache eviction="LRU" flushInterval="30000" size="512" readOnly="true" />

项目结构:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值