- 浏览: 16718 次
最新评论
为了提高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,放在类路径下面,内容如下
该文件是ehcache的配置文件,上面的注释已经说得很清楚了,这里我用的是默认的配置
至此ehcache已经配置好了,然后只需要在你想要缓存的mapper配置文件里面加入以下内容,该查询语句得到的结果将会被缓存
这样就对这个mapper里面的各种结果进行了缓存.程序中不需要修改任何地方.
这个过程不复杂,也没什么难度,不过Mybatis的官方说的也太含糊了.附件下面有,需要的各种jar包已经包含.
注:本文源自http://qiuqiu0034.iteye.com/blog/1162952
在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.rar (2.2 MB)
- 下载次数: 0
发表评论
-
JavaWeb 之 session
2017-10-12 15:06 0一、Session ... -
git clone命令
2017-10-10 15:30 1127git clone 命令参数: usage: gi ... -
Mac下idea快捷键
2017-10-09 17:21 395IntelliJ IDEA For Mac 快捷 ... -
浅谈java中的堆栈(二)
2016-12-16 17:50 0Java 中的堆和栈 Java把内存划分成两种:一种是 ... -
浅谈java中的堆栈(一)
2016-12-16 17:28 310Java把内存分成两种,一种叫做堆内存,一种叫做栈内存:在 ... -
导出excel的两种方式(二)
2015-12-17 15:26 7861.调用类如下: @RequestMapping(&quo ... -
导出excel的两种方式(一)
2015-12-17 15:10 6711.导出excel方法调用: import org.apa ... -
正确选择使用字符串或者数字
2015-12-08 10:53 439在我多年的开发经验中,经常发现的一个情况就是,很多项目的对象 ... -
mybatis在xml文件中处理大于号小于号的方法
2015-06-11 17:30 395第一种方法: 用了转义字符把>和<替换掉,然 ... -
Java中serialVersionUID
2015-06-11 17:31 473serialVersionUID作用: ... -
为什么使用redis
2015-06-11 17:41 472先解释一下软件编程中常见的一些概念: 抽象先于具象。这个抽象 ... -
mybatis入门三之使用MyBatis Generator生成DAO
2015-06-10 18:06 871虽然MyBatis很方便,但是想要手写全部的mapper还是很 ... -
mybatis入门一
2015-06-10 17:53 329ibatis的3.X版本改名了,叫做MyBatis,暂且不讨论 ... -
spring+mybatis优缺点
2015-06-10 16:43 1611一、mybatis的优缺点: ... -
struts1与struts2
2015-06-10 15:39 3661.struts2不是struts1的升级,而是继承的webw ... -
Java语言滴transient
2015-03-26 21:48 488transient说明一个属性是临时的,不会被序列化。详看事例 ... -
Java语言滴Interface(二)
2015-03-26 21:03 4901.看代码: public interface Anima ... -
Java语言滴Interface
2015-03-26 18:32 4251.相对abstract class(抽象类)来讲,inter ...
相关推荐
在本篇《Mybatis入门实例(二)——添加ehcache缓存支持》中,我们将深入探讨如何在Mybatis框架中集成Ehcache作为二级缓存,以提高数据访问的效率和性能。Ehcache是一个开源的Java分布式缓存,广泛用于缓存应用程序中...
例如,SpringMVC和MyBatis的配置、SpringSecurity的权限规则设置、EhCache的缓存策略以及JCaptcha的验证码生成参数等。 虽然网上可以找到各种组件的单独整合教程,但往往缺乏全面的整合方案。因此,自己动手实践,...
- 参照缓存:MyBatis提供了对第三方缓存的支持,例如Ehcache、Redis等。 MyBatis在设计时也考虑到了可扩展性,用户可以通过定义插件(plugins)来自定义MyBatis的核心行为。插件可以拦截方法调用并修改执行的行为,...
MyBatis支持一级缓存和二级缓存,以减少数据库访问次数,提升性能。 - **使用自定义缓存**:允许开发者自定义缓存实现。 - **参照缓存**:使用外部缓存如EHCache。 #### 动态SQL MyBatis支持动态SQL,允许根据...
- **7.4.5 加入Ehcache的配置文件**:配置Ehcache缓存策略。 - **7.5 二级缓存应用场景**:探讨二级缓存在不同场景下的应用。 - **7.6 二级缓存局限性**:讨论二级缓存可能存在的问题,如并发更新问题等。 #### 六...
常用功能:会话(session),安全性(rbac权限框架),shiro(rbac权限框架),oauth(第三方登录),logback(日志),log-aop(AOP方式日志),ehcache(ehcache缓存),异常(统一异常处理),Async(异步
MyBatis 默认并未启用二级缓存,需要在映射文件中显式配置,并且可以通过第三方缓存实现如 Ehcache、OSCache、Redis 等增强其功能。 通过以上内容的学习,可以了解到 MyBatis 不仅提供了强大的数据库访问能力,还...
MyBatis入门 ##### 1.1 单独使用JDBC编程问题总结 - **JDBC程序示例**:通过一个具体的示例展示了如何使用JDBC连接数据库并执行SQL查询。 - 加载数据库驱动 - 获取数据库连接 - 准备SQL语句 - 设置参数 - 执行...
9. **第10章**:最后,可能会讨论一些高级主题,比如Spring的缓存支持(如使用Ehcache或Redis),以及Mybatis的延迟加载和缓存机制。此外,还可能涉及性能优化策略,如批处理操作和连接池的配置。 以上各章节的源码...
- **缓存**: Redis(高性能的key-value存储系统)、ehcache(Java平台上的缓存实现)。 - **消息中间件**: ActiveMQ(基于AMQP协议的消息中间件)。 - **负载均衡**: Nginx(高效反向代理服务器)。 - **分布式...
Spring Boot中使用Ehcache缓存数据 Spring Boot中的JSON技术 Spring Boot中编写单元测试 Spring Boot整合Swagger2构建RESTful API 使用Actuator监控Spring Boot应用 使用Spring Boot发送邮件 使用Spring Boot Admin...
4. **缓存**:支持EhCache、Hazelcast、Infinispan等缓存技术,简化缓存管理。 5. **国际化的消息支持**:通过`spring-boot-starter-validation`和`spring-boot-starter-i18n`可以实现多语言支持。 ### 四、my...
3. **Ehcache缓存管理**: Ehcache是Java的一个分布式缓存解决方案,它支持内存和磁盘存储,适用于提升应用性能,减少对数据库的依赖。在Spring Boot中集成Ehcache,可以方便地进行缓存操作,提高系统的响应速度。 ...
- 整合Redis、Ehcache等实现数据缓存。 - 使用`@Cacheable`、`@CacheEvict`等注解进行缓存操作。 #### 3.6 分页查询 - 使用Pageable接口和Spring Data JPA实现分页查询。 - 整合MyBatis-Plus进行高效数据库操作。 ...
二、快速入门 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, ...
它支持多种缓存技术,如EhCache、Redis等。通过注解`@Cacheable`、`@CacheEvict`等,开发者可以轻松地将缓存逻辑集成到业务代码中,提高应用性能。 3. **MyBatis**:MyBatis是一个轻量级的持久层框架,它允许开发者...
10. **缓存支持**:Spring Boot 提供了对缓存的支持,如Redis、Hazelcast、Ehcache等。通过缓存,可以提高数据读取速度,减少对数据库的压力。 11. **邮件发送**:Spring Boot 提供了发送邮件的功能,支持SMTP协议...
二级缓存可选,可以使用第三方缓存如Ehcache或分布式缓存如Memcached,以支持多服务器共享。 4. **数据服务层**: - 数据库通常位于三层架构的数据服务层,Oracle是一个常用的关系型数据库管理系统,提供高效稳定...
[2]刘培辉.MyBatis 从入门到精通[M].中国工信出版社.电子工业出版社. [3]汪云飞.SpringBoot 实战[M].中国工信出版社.电子工业出版社. [4]王萍. SpringBoot 项目中 EhCache 缓存技术的实现[J].电子知识与技术....
校友录(校友录)项目简介基于javaWeb,由Maven建立管理,采用Spring + SpringMVC + MyBatis框架,用EhCache做数据缓存。界面。门户网站总体布局如下所示:后台管理总体布局如下所示:在线体验: 【门户网站】访问...