使用MyBatis批量预缓存

时间:2014-07-25 12:35:15

标签: java caching mybatis

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

所以在实际应用中说,我想搜索特定的用户信息:

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

因此,当调用它时,它将检查缓存,如果它不存在,那么它将搜索数据库。有没有办法用这个表中的每个记录预先加载这个缓存,这样当调用这个方法时,它会从缓存而不是数据库中选择它?

1 个答案:

答案 0 :(得分:1)

尝试将以下标记添加到 SQL映射文件

<cache/>

这将在 Mybatis 中启用全局缓存,并且默认情况下应该缓存映射器文件中SELECT个语句的所有结果(受各种条件限制) ,包括 LRU驱逐)。

您可以通过在程序中的 setup (或等效)方法中手动调用SELECT语句来自行加热缓存(而不是等待第一次用户引发的调用)正在加载映射文件

Mybatis Caching Info

该链接中还有一些信息可以更改默认行为,包括类型,大小和刷新间隔;以及如果您的需求非常具体,可以创建自定义缓存。