一、 Mybatis+Ehcache配置
为了提高MyBatis的性能,有时候我们需要加入缓存支持,目前用的比较多的缓存莫过于ehcache缓存了,ehcache性能强大,而且位各种应用都提供了解决方案,在此我们主要是做查询缓存,提高查询的效率.
整合MyBatis和ehcache需要的jar包如下:
ehcache-core-2.4.4.jar
mybatis-ehcache-1.0.0.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.2.jar
资源已上传到百度网盘点击此处下载,其中包括了一些mybatis的jar包,log4j,mysql驱动等必须的包
将上述包加入项目之后,新建一个文件名,该文件名必须为ehcache.xml,放在类路径下面,内容如下:
该文件是ehcache的配置文件,上面的注释已经说得很清楚了,这里我用的是默认的配置
这样就对这个mapper里面的各种结果进行了缓存。程序中不需要修改任何地方。
二、 springMVC+mybatis+ehcache详细配置
首先需要先需要两个主要的jar包
ehcache-core-2.4.6.jar
mybatis-ehcache-1.0.1.jar
ehcache-core一定要1.3以上的版本 因为1.3之前好像不支持集群的。然后需要创建一个ehcache.xml在类路径下面
上面的diskStor path 你可以指定某一个路径下,java.io.tmpdir 指的是你系统的缓存目录,可以百度下然后一般这个xml都需要有一个defaultCache,就是默认的cache配置 里面有哪些参数自己可以网上查查api
这样就可以把ehcache和spring整合起来了
后面的参数配置不加也可以,都会有一个默认值,大家也可以查查一共有哪些配置,然后根据自己的需要来配置,然后这个配置是会带上cache执行的日志,如果不要带日志可以把LogginEhcache改成EhcacheCache。
其实经过这样的配置ehcache已经基本OK了。接下来就测试一下。
long begin = System.nanoTime();
tempService.selectAll();
long end = System.nanoTime() - begin;
System.out.println("count :" + end);
// the second time
begin = System.nanoTime();
try {
tempService.insertTblUserTemp("1", "1", "1", "1");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
end = System.nanoTime() - begin;
System.out.println("count :" + end);
// the second time
begin = System.nanoTime();
tempService.selectAll();
end = System.nanoTime() - begin;
System.out.println("count :" + end);
// the third time
begin = System.nanoTime();
tempService.selectAll();
end = System.nanoTime() - begin;
System.out.println("count :" + end);
这里面有4条输出语句
也可以根据count来查看操作的时间
count :681719
————————————————-com.anenjoy.manage.mapper.TblUserTempMapper.insert
insert into TBLUSERTEMP (ACTIVECODE, PASSWORDMD5, PASSWORDRANDOMKEY,
PHONE, EMAIL, USERNAME,
AWARTAR, STATUS, CREATEDATE,
USERID, IMSI, CHECKCODE
)
values (?, ?, ?,
?, ?, ?,
?, ?, ?,
?, ?, ?
)
count :129557388
————————————————-com.anenjoy.manage.mapper.TblUserTempMapper.selectByExample
select
ACTIVECODE, PASSWORDMD5, PASSWORDRANDOMKEY, PHONE, EMAIL, USERNAME, AWARTAR, STATUS,
CREATEDATE, USERID, IMSI, CHECKCODE
from TBLUSERTEMP
count :333938203
count :560704
然后这些基本上OK了
原文地址:http://www.darrenzhong.com/?p=73#codesyntax_6
源码下载:http://pan.baidu.com/s/1jGnATds 解压密码:Darren中博客
总结:以上两种方式我都有试过,也测试过两种方式的效率。在此发表一下个人观点,如有其他观点欢迎大家讨论。
使用ehcache+mybatis的查询效率不如springMVC+mybatis+ehcache的效率高。
ehcache.xml配置文件中的