Mybatis3之cache如何配置

在mybatis3的版本中,集成了cache,这个cache也是mybatis自身做的代码级的cache,也就是session级别的,内核也就是采用map来做一级缓存,这个在session级别用处非常大,至少在一个session中,命中率较高。

现来看看在使用过程中如何配置:

mybatis的配置是基于xml来的,我在实际项目中是这样配置的:

mybatis-configuration.xml
01
02
03
04
05
06
07
08
09
10
11
12
<? xml version = "1.0" encoding = "UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
< configuration >
 
     < settings >
         < setting name = "cacheEnabled" value = "true" />
         < setting name = "useColumnLabel" value = "true" />
         < setting name = "useGeneratedKeys" value = "true" />
     </ settings >
 
</ configuration >

从上面可以看到在settings节点中,有一个cacheEabled的属性,在使用cache的时候,需要将这个property设置为true,否则cache是关闭的。

上面的配置是全局的,如果想对单独的model如何来做配置呢? 这点mybatis官方已经考虑到了,给我们留下了可配置的地方,再来看如何操作:

AppVersion.mbm.xml
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<? xml version = "1.0" encoding = "UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
 
< mapper namespace = "AppVersion" >
 
     < cache type = "org.mybatis.caches.ehcache.LoggingEhcache" />
 
     < resultMap id = "AppVersionMap" type = "com.tojsp.it.AppVersion"
         extends = "BaseEntity.baseMap" >
         < result property = "version" column = "version" />
         < result property = "versionNum" column = "version_num" />
         < result property = "compatibleNum" column = "compatible_num" />
         < result property = "changeLog" column = "change_log" />
         < result property = "releaseDate" column = "release_date" />
         < result property = "remark" column = "remark" />
     </ resultMap >
</ mapper >

以上文件中的第7行,可以在此配置cache的相关属性,例如我在这个配置文件中使用的是第三方的ehcache,并没有使用mybatis自带的cache,这些配置都是可以扩展的,当然我们也可以自定义自己的cache,只用实现mybatis的接口就好了,当然这是后话,后面我会就此单独写文章。

当然,mybatis的cache控制粒度还可以更小,比如精确到每条语句的结果需要cache或不需要cache,怎么做呢?

AppVersion.mbm.xml
1
2
3
< select id = "inetAton" parameterType = "string" useCache = "false"
select inet_aton(#{name})
</ select >

以上代码中有一个attribute: usecache,这就是控制是否对查询结果进行缓存的开关。

好了,mybatis的基本cache先写到这了,稍后会对cache做一个详细的讲解,包括cache的局限限和扩展性,自定义cache等,以及和nosql的对比。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值