0

我在 Jax-RS (Jersey) 宁静的网络应用程序中使用 mybatis。所以自动地,我没有会话或状态管理。

问题是如何使用 mybatis 的缓存功能?

4

1 回答 1

3

MyBatis 中的缓存非常简单。根据文档(用户手册第 42 页http://mybatis.googlecode.com/svn/trunk/doc/en/MyBatis-3-User-Guide.pdf

默认情况下,没有启用缓存,除了本地会话缓存,它可以提高性能并且是解决循环依赖项所必需的。要启用第二级缓存,您只需在 SQL 映射文件中添加一行:MyBatis 3 - 用户指南 6 June 2011 43

<cache/>

从字面上看就是这样。

这样做时我遇到的常见陷阱:

在映射器上,您将缓存元素添加到;如果您有依赖实体,请确保在需要时显式刷新缓存。即使在您设置缓存元素的映射中的元素的插入、更新、删除时已经为您完成了刷新,但有时您必须刷新缓存,因为在不同的 xml 映射中定义了更新/删除/等。

基本上,当您考虑缓存时,您应该问自己:“当此实体发生更改时,我是否希望它为不同映射中的实体刷新缓存?” 如果答案是肯定的,请使用 cache-ref 元素而不是仅使用缓存。

例如来自文档第 45 页:

<cache-ref namespace=”com.someone.application.data.SomeMapper”/>
于 2011-09-27T17:41:38.727 回答