`

转载:MyBatis的缓存配置(Cache)

 
阅读更多

转载:http://blog.csdn.net/woshisap/article/details/6825714

 

一、MyBatis的Cache配置
1、全局开关:默认是true,如果它配成false,其余各个Mapper XML文件配成支持cache也没用。
<settings>
         <setting name="cacheEnabled" value="true"/>
</settings>

2、各个Mapper XML文件,默认是不采用cache。在配置文件加一行就可以支持cache:
 

<cache />
如: 
<mapper namespace="com.xx.list">
           <cache type="org.mybatis.caches.ehcache.EhcacheCache"/>
           <select>
           </select>
</mapper>


3、Mapper XML文件配置支持cache后,文件中所有的Mapper statement就支持了。此时要个别对待某条,需要:
//useCache=“false” 不支持 
<select id="inetAton" parameterType="string" resultType="integer" useCache=“false”> 
select inet_aton(#{name})
</select>

二、注意的几个细节
1、如果readOnly为false,此时要结果集对象是可序列化的。
<cache readOnly="false"/>

2、在SqlSession未关闭之前,如果对于同样条件进行重复查询,此时采用的是local session cache,而不是上面说的这些cache。

3、MyBatis缓存查询到的结果集对象,而非结果集数据,是将映射的PO对象集合缓存起来。

说意义不大是在于:
a、面对一定规模的数据量,内置的cache方式就派不上用场了;
b、对查询结果集做缓存并不是MyBatis框架擅长的,它专心做的应该是sql mapper。采用此框架的Application去构建缓存更合理,比如采用OSCache、Memcached啥的。
分享到:
评论

相关推荐

    mybatis+redis缓存配置

    2. **配置MyBatis缓存**: - 在Mapper的XML文件中为每个Mapper配置缓存: ```xml &lt;cache eviction="FIFO" flushInterval="10000" size="1024" readOnly="true" type="com.example.RedisCache"/&gt; ``` 其中: - ...

    Mybatis-ehcache 1.2.1源码(ehcache-cache-mybatis-ehcache-1.2.1.zip)

    2. **配置**:了解如何在Mybatis的配置文件中设置Ehcache,包括设置缓存的策略(如时间过期、容量限制等),以及如何关联到特定的Mapper或全局配置。 3. **缓存操作**:Mybatis-ehcache如何进行缓存的读取、写入和...

    MyBatis源码分析.pdf

    节点用于定义MyBatis的配置属性,包括数据库连接信息、缓存设置等。MyBatis会将节点解析到Properties对象中,然后将其设置到Configuration对象中。 2.1.2 解析节点 节点用于定义MyBatis的全局设置,包括日志记录、...

    Mybatis缓存机制案例

    Mybatis缓存机制是数据库操作中的重要组成部分,它能够提高数据访问效率,减少对数据库的重复查询。在Mybatis中,缓存分为一级缓存和二级缓存,这两种缓存各有其特点和应用场景。 一级缓存是SqlSession级别的缓存,...

    基于mybatis自定义缓存配置Redis

    本篇文章将深入探讨如何在MyBatis中自定义缓存配置,整合第三方缓存系统Redis。 首先,理解MyBatis的缓存机制。MyBatis提供了两级缓存:一级缓存是SqlSession级别的,存在于SqlSessionFactory内部,而二级缓存是...

    从0到1项目搭建-集成 Redis 配置MyBatis二级缓存

    基于 SpringBoot 从0搭建一个企业级开发项目,基于SpringBoot 的项目,并集成MyBatis-Plus、Redis、Druid、Logback ,并使用 Redis 配置 MyBatis 二级缓存。

    mybatis 缓存的简单配置

    标题 "mybatis 缓存的简单配置" 涉及的是MyBatis框架中的缓存机制,这是一个关键特性,用于提升数据库操作的效率。MyBatis的缓存分为一级缓存和二级缓存,它们各自有不同的作用和实现方式。 一级缓存是SqlSession...

    mybatis-3-mybatis-3.5.7.zip源码

    12. **缓存机制**:MyBatis提供了本地缓存(Local Cache)和二级缓存(Second Level Cache),能有效减少数据库的访问,提高系统性能。 通过对MyBatis 3.5.7源码的深入学习,我们可以了解到其实现细节,包括反射、...

    简单分享:MyBatis 的一些关键特性和概念

    为了提高性能,MyBatis 提供了一级缓存(基于 SqlSession 的缓存)和二级缓存(跨 SqlSession 的全局缓存)。一级缓存默认开启,而二级缓存需要在映射器级别手动启用。 **启用二级缓存示例:** ```xml &lt;cache/&gt; ...

    mybatis缓存的配置文件

    1. **开启全局缓存**:在MyBatis的主配置文件(mybatis-config.xml)中,设置`cacheEnabled`为`true`来开启缓存功能。 ```xml ``` 2. **配置二级缓存**:在Mapper接口对应的XML配置文件中,定义一个`...

    mybatis-enhanced-cache源码和jar包

    2. 配置MyBatis:在MyBatis的配置文件中启用二级缓存,并指定使用mybatis-enhanced-cache插件。 3. 配置插件:根据插件文档,设置相应的参数,比如缓存大小、清理策略等。 4. 在Mapper接口或XML配置中启用或禁用缓存...

    mybatis-3-mybatis-3.5.11.zip

    通过 cache 元素配置,可以自定义缓存策略。 8. **事务管理**:MyBatis 可以集成 Spring 进行事务管理,或者手动控制 SqlSession 的 beginTransaction、commit 和 rollback 方法。 9. **插件扩展**:MyBatis 提供...

    Mybatis源码分析

    Mybatis缓存机制 Mybatis提供了两种级别的缓存机制:一级缓存和二级缓存。 1. 一级缓存:默认启用,用于存储当前会话中的数据。 2. 二级缓存:用于存储跨会话的数据,需要手动配置。 Mybatis设计模式 Mybatis...

    Mybatis缓存开源架构源码2021.pdf

    总的来说,《Mybatis缓存开源架构源码2021》这份文档很可能会涵盖 MyBatis 缓存体系的各个方面,包括一级缓存和二级缓存的使用、配置、源码解析以及实际开发中的注意事项。对于想深入了解 MyBatis 缓存机制的开发者...

    mybatis二级缓存

    标题中的“mybatis二级缓存”指的是MyBatis框架中的一个重要特性,它是MyBatis缓存机制的一部分,用于提升数据库查询效率。MyBatis一级缓存是SqlSession级别的,而二级缓存则是在整个Mapper配置范围内的全局缓存,...

    Mybatis系列教程Mybatis缓存共17页.pdf

    Mybatis 是一款流行的Java持久层框架,它简化了数据库操作,通过XML或注解的方式将SQL...本教程的17页内容将会详尽地讲解Mybatis缓存的各个方面,包括配置、使用示例以及最佳实践,帮助开发者更好地掌握这一关键特性。

    深入理解MyBatis中的一级缓存与二级缓存

    开启二级缓存需要在MyBatis的配置文件中加入 `&lt;settings&gt; &lt;setting name="cacheEnabled" value="true"/&gt;&lt;/settings&gt;`,并在需要开启二级缓存的mapper.xml中加入 `&lt;cache/&gt;`标签,同时让使用二级缓存的POJO类实现...

    mybatis-3.zip

    5. **缓存机制**:MyBatis内置了本地缓存(Local Cache)和二级缓存(Second Level Cache),可以提高数据访问效率。本地缓存作用于单个SqlSession,而二级缓存则可以在多个SqlSession之间共享数据。 6. **插件支持...

    mybatis源码.rar

    `LocalCache`和`PerpetualCache`是默认的本地缓存实现,而二级缓存则可以通过实现`Cache`接口来自定义。 8. 执行流程:MyBatis的执行流程大致为:SqlSessionFactoryBuilder创建SqlSessionFactory,SqlSession从...

Global site tag (gtag.js) - Google Analytics