`
zhangchunxiao
  • 浏览: 16718 次
社区版块
存档分类
最新评论

mybatis入门二之添加ehcache缓存支持

    博客分类:
  • Java
 
阅读更多
为了提高MyBatis的性能,有时候我们需要加入缓存支持,目前用的比较多的缓存莫过于ehcache缓存了,ehcache性能强大,而且位各种应用都提供了解决方案,在此我们主要是做查询缓存,提高查询的效率.

在Mybatis的官网上把集成ehcache的文档下载下来看了看,说的太简单了,对于新手很难理解,而且里面说的也不是很清楚,经过一番折腾,终于将ehcache加入了.

官网上提供了一个MyBatis-ehcache.jar的包用于整合ehcache缓存,文档中还说明需要一个ehcache-core.jar的包,除了这两个包之外有几个包也是必须的,官方并没有说明,以下是需要加入的所有和ehcache相关的包:
1.ehcache-core-2.4.4.jar
2.mybatis-ehcache-1.0.0.jar
3.slf4j-api-1.6.1.jar
4.slf4j-log4j12-1.6.2.jar

除此之外还有mybatis的jar包,log4j,mysql驱动,这些大家应该都知道.

将上述包加入项目之后,新建一个文件名,该文件名必须为ehcache.xml,放在类路径下面,内容如下
<?xml version="1.0" encoding="UTF-8"?>  
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:noNamespaceSchemaLocation="../bin/ehcache.xsd">  
    <!--  
    name:Cache的唯一标识  
    maxElementsInMemory:内存中最大缓存对象数  
    maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大  
    eternal:Element是否永久有效,一但设置了,timeout将不起作用  
    overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中  
    timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大  
    timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大   
    diskPersistent:是否缓存虚拟机重启期数据  
    diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒  
    diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区  
     memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)   
    -->  
    <defaultCache overflowToDisk="true" eternal="false"/>  
    <diskStore path="D:/cache" />  
    <!--  
        <cache name="zzugxy" overflowToDisk="true" eternal="false"  
        timeToIdleSeconds="300" timeToLiveSeconds="600" maxElementsInMemory="1000"  
        maxElementsOnDisk="10" diskPersistent="true" diskExpiryThreadIntervalSeconds="300"  
        diskSpoolBufferSizeMB="100" memoryStoreEvictionPolicy="LRU" />  
    -->  
</ehcache>  

该文件是ehcache的配置文件,上面的注释已经说得很清楚了,这里我用的是默认的配置
至此ehcache已经配置好了,然后只需要在你想要缓存的mapper配置文件里面加入以下内容,该查询语句得到的结果将会被缓存
<?xml version="1.0" encoding="UTF-8" ?>   
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
<mapper namespace="com.qiuqiu.dao.PersonDao">  
    <!-- 以下两个<cache>标签二选一,第一个可以输出日志,第二个不输出日志 -->  
    <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>  
    <!-- <cache type="org.mybatis.caches.ehcache.EhcacheCache"/> -->  
      
    <select id="selectUserById" parameterType="int" resultType="org.qiuqiu.vo.Person">  
        select * from person where id=#{id}   
    </select>  
</mapper>  

这样就对这个mapper里面的各种结果进行了缓存.程序中不需要修改任何地方.

这个过程不复杂,也没什么难度,不过Mybatis的官方说的也太含糊了.附件下面有,需要的各种jar包已经包含.
注:本文源自http://qiuqiu0034.iteye.com/blog/1162952
分享到:
评论

相关推荐

    Mybatis入门实例(二)——添加ehcache缓存支持

    在本篇《Mybatis入门实例(二)——添加ehcache缓存支持》中,我们将深入探讨如何在Mybatis框架中集成Ehcache作为二级缓存,以提高数据访问的效率和性能。Ehcache是一个开源的Java分布式缓存,广泛用于缓存应用程序中...

    JavaWeb开发之Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架

    例如,SpringMVC和MyBatis的配置、SpringSecurity的权限规则设置、EhCache的缓存策略以及JCaptcha的验证码生成参数等。 虽然网上可以找到各种组件的单独整合教程,但往往缺乏全面的整合方案。因此,自己动手实践,...

    MyBatis3 教程 中文版PDF(永久)

    - 参照缓存:MyBatis提供了对第三方缓存的支持,例如Ehcache、Redis等。 MyBatis在设计时也考虑到了可扩展性,用户可以通过定义插件(plugins)来自定义MyBatis的核心行为。插件可以拦截方法调用并修改执行的行为,...

    mybatis 3 中文 指南

    MyBatis支持一级缓存和二级缓存,以减少数据库访问次数,提升性能。 - **使用自定义缓存**:允许开发者自定义缓存实现。 - **参照缓存**:使用外部缓存如EHCache。 #### 动态SQL MyBatis支持动态SQL,允许根据...

    mybatis学习文档资料

    - **7.4.5 加入Ehcache的配置文件**:配置Ehcache缓存策略。 - **7.5 二级缓存应用场景**:探讨二级缓存在不同场景下的应用。 - **7.6 二级缓存局限性**:讨论二级缓存可能存在的问题,如并发更新问题等。 #### 六...

    spring-boot-demo:BootSpring Boot演示入门样例,包括属性(配置),JDBC模板(数据库CRUD),JPA(Hibernate数据库CRUD),Mybatis(数据库CRUD),Mybatis(Mybatis数据库CRUD),thymeleaf(模板解析),beetl(模板)解析),freemarker(模板解析),享受(模板解析),logback(日志),log-aop(AOP方式日志),ehcache(ehcache缓存),执行器(监控),admin(监控),swagger

    常用功能:会话(session),安全性(rbac权限框架),shiro(rbac权限框架),oauth(第三方登录),logback(日志),log-aop(AOP方式日志),ehcache(ehcache缓存),异常(统一异常处理),Async(异步

    Mybatis框架学习

    MyBatis 默认并未启用二级缓存,需要在映射文件中显式配置,并且可以通过第三方缓存实现如 Ehcache、OSCache、Redis 等增强其功能。 通过以上内容的学习,可以了解到 MyBatis 不仅提供了强大的数据库访问能力,还...

    mybatis学习笔记

    MyBatis入门 ##### 1.1 单独使用JDBC编程问题总结 - **JDBC程序示例**:通过一个具体的示例展示了如何使用JDBC连接数据库并执行SQL查询。 - 加载数据库驱动 - 获取数据库连接 - 准备SQL语句 - 设置参数 - 执行...

    spring+mybatis 企业应用实战源码(2-10章)

    9. **第10章**:最后,可能会讨论一些高级主题,比如Spring的缓存支持(如使用Ehcache或Redis),以及Mybatis的延迟加载和缓存机制。此外,还可能涉及性能优化策略,如批处理操作和连接池的配置。 以上各章节的源码...

    分布式框架简介SSM组合+ springmvc+mybatis+shiro+restful+bootstrap

    - **缓存**: Redis(高性能的key-value存储系统)、ehcache(Java平台上的缓存实现)。 - **消息中间件**: ActiveMQ(基于AMQP协议的消息中间件)。 - **负载均衡**: Nginx(高效反向代理服务器)。 - **分布式...

    SpringAll_wuyouzhuguli.tar.gz

    Spring Boot中使用Ehcache缓存数据 Spring Boot中的JSON技术 Spring Boot中编写单元测试 Spring Boot整合Swagger2构建RESTful API 使用Actuator监控Spring Boot应用 使用Spring Boot发送邮件 使用Spring Boot Admin...

    Spring Boot快速入门

    4. **缓存**:支持EhCache、Hazelcast、Infinispan等缓存技术,简化缓存管理。 5. **国际化的消息支持**:通过`spring-boot-starter-validation`和`spring-boot-starter-i18n`可以实现多语言支持。 ### 四、my...

    spring-boot-study-master.zip

    3. **Ehcache缓存管理**: Ehcache是Java的一个分布式缓存解决方案,它支持内存和磁盘存储,适用于提升应用性能,减少对数据库的依赖。在Spring Boot中集成Ehcache,可以方便地进行缓存操作,提高系统的响应速度。 ...

    Java Springboot入门自学笔记

    - 整合Redis、Ehcache等实现数据缓存。 - 使用`@Cacheable`、`@CacheEvict`等注解进行缓存操作。 #### 3.6 分页查询 - 使用Pageable接口和Spring Data JPA实现分页查询。 - 整合MyBatis-Plus进行高效数据库操作。 ...

    SpringBoot新手学习手册.pdf

    二、快速入门 1 2.1、创建一个Maven工程 1 2.2、pom文件引入依赖 2 2.3、编写HelloWorld服务 2 2.4、@RestController 3 2.5、@EnableAutoConfiguration 3 2.6 SpringApplication.run(HelloController.class, ...

    Spring Boot 简单Demo

    它支持多种缓存技术,如EhCache、Redis等。通过注解`@Cacheable`、`@CacheEvict`等,开发者可以轻松地将缓存逻辑集成到业务代码中,提高应用性能。 3. **MyBatis**:MyBatis是一个轻量级的持久层框架,它允许开发者...

    Spring Boot教程程序样例

    10. **缓存支持**:Spring Boot 提供了对缓存的支持,如Redis、Hazelcast、Ehcache等。通过缓存,可以提高数据读取速度,减少对数据库的压力。 11. **邮件发送**:Spring Boot 提供了发送邮件的功能,支持SMTP协议...

    ssh学习总结知识.pdf

    二级缓存可选,可以使用第三方缓存如Ehcache或分布式缓存如Memcached,以支持多服务器共享。 4. **数据服务层**: - 数据库通常位于三层架构的数据服务层,Oracle是一个常用的关系型数据库管理系统,提供高效稳定...

    基于springboot的电影平台的设计与实现-说明文

    [2]刘培辉.MyBatis 从入门到精通[M].中国工信出版社.电子工业出版社. [3]汪云飞.SpringBoot 实战[M].中国工信出版社.电子工业出版社. [4]王萍. SpringBoot 项目中 EhCache 缓存技术的实现[J].电子知识与技术....

    Alumni-Network:毕业设计-莞工校友网

    校友录(校友录)项目简介基于javaWeb,由Maven建立管理,采用Spring + SpringMVC + MyBatis框架,用EhCache做数据缓存。界面。门户网站总体布局如下所示:后台管理总体布局如下所示:在线体验: 【门户网站】访问...

Global site tag (gtag.js) - Google Analytics