Package org.apache.ibatis.cache
Interface Cache
-
- All Known Implementing Classes:
BlockingCache,FifoCache,LoggingCache,LruCache,PerpetualCache,ScheduledCache,SerializedCache,SoftCache,SynchronizedCache,TransactionalCache,WeakCache
public interface CacheSPI for cache providers.One instance of cache will be created for each namespace.
The cache implementation must have a constructor that receives the cache id as an String parameter.
MyBatis will pass the namespace as id to the constructor.
public MyCache(final String id) { if (id == null) { throw new IllegalArgumentException("Cache instances require an ID"); } this.id = id; initialize(); }- Author:
- Clinton Begin
-
-
Method Summary
Modifier and Type Method Description voidclear()Clears this cache instance.java.lang.StringgetId()java.lang.ObjectgetObject(java.lang.Object key)default java.util.concurrent.locks.ReadWriteLockgetReadWriteLock()Optional.intgetSize()Optional.voidputObject(java.lang.Object key, java.lang.Object value)java.lang.ObjectremoveObject(java.lang.Object key)As of 3.3.0 this method is only called during a rollback for any previous value that was missing in the cache.
-
-
-
Method Detail
-
getId
java.lang.String getId()
- Returns:
- The identifier of this cache
-
putObject
void putObject(java.lang.Object key, java.lang.Object value)- Parameters:
key- Can be any object but usually it is aCacheKeyvalue- The result of a select.
-
getObject
java.lang.Object getObject(java.lang.Object key)
- Parameters:
key- The key- Returns:
- The object stored in the cache.
-
removeObject
java.lang.Object removeObject(java.lang.Object key)
As of 3.3.0 this method is only called during a rollback for any previous value that was missing in the cache. This lets any blocking cache to release the lock that may have previously put on the key. A blocking cache puts a lock when a value is null and releases it when the value is back again. This way other threads will wait for the value to be available instead of hitting the database.- Parameters:
key- The key- Returns:
- Not used
-
clear
void clear()
Clears this cache instance.
-
getSize
int getSize()
Optional. This method is not called by the core.- Returns:
- The number of elements stored in the cache (not its capacity).
-
getReadWriteLock
default java.util.concurrent.locks.ReadWriteLock getReadWriteLock()
Optional. As of 3.2.6 this method is no longer called by the core.Any locking needed by the cache must be provided internally by the cache provider.
- Returns:
- A ReadWriteLock
-
-