关闭

MyBatis的Cache实际意义不大

标签: cacheparsingapplicationweb开发memcachedxml
5697人阅读 评论(4) 收藏 举报
分类:

转载的一篇文章。

出于新项目一定要求要用jsp,让我这个习惯写窗体应用程序的去搞web开发,让我好生为难。半路出家,遇到问题很多,转载些文章,自己顺便修改些,留备忘。

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


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

2、各个Mapper XML文件,默认是不采用cache。在配置文件加一行就可以支持cache:
 <cache />  就这个网上找了个java应用程序的例子,用的是<cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>或者<cache type="org.mybatis.caches.ehcache.EhcacheCache"/> ,然后我把这个缓存功能也弄到自己的web中,老报错:

org.apache.jasper.JasperException: org.apache.ibatis.exceptions.PersistenceException: 
### Error building SqlSession.
### The error may exist in yeah/person.xml
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.RuntimeException: Error parsing Mapper XML. Cause: org.apache.ibatis.cache.CacheException: Could not instantiate cache implementation (class org.mybatis.caches.ehcache.EhcacheCache). Cause: java.lang.reflect.InvocationTargetException
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
一堆错误,底下还有。直接换成<cache />就ok了,在看到这篇文章说MyBatis的Cache意义不大,我看还是算了不折腾这个了,没那么多闲工夫。


3、Mapper XML文件配置支持cache后,文件中所有的Mapper statement就支持了。此时要个别对待某条,需要:
<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。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:85427次
    • 积分:1167
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:15篇
    • 译文:0篇
    • 评论:26条
    最新评论