2014-07-25 35 views
0

我正在使用MyBatis的3.2.7版本,我想要做的是能够在应用程序使用前预先填充缓存,所以在启动时。使用MyBatis的批量预缓存

在实际应用中这样说,我想搜索一个特定的用户信息:

<select id="selectSpecificUser" parameterType="int"> 
     SELECT * 
     FROM users 
     WHERE userid=#{id} 
    </select> 

所以,当这个被调用时,它会检查缓存,如果它不存在,那么它会搜索D B。有没有一种方法可以预先加载此缓存与此表中的每条记录,以便在调用此方法时,它会从缓存而非数据库中选取它?

回答

1

尝试添加以下代码到你的SQL映射文件

<cache/> 

这将在的MyBatis使全局缓存,并应在默认缓存从SELECT语句在映射文件中的所有结果(受各种条件影响,包括LRU驱逐)。

你可以温暖自己的高速缓存(而不是等待第一个用户导致调用)通过手动调用该SELECT声明中设置(或同等学历)方法在你的程序被加载映射文件

Mybatis Caching Info

还有一个在该链接来改变默认行为,包括类型,尺寸,和刷新时间间隔的信息;以及如果您的需求非常具体,可以创建自定义缓存。