1.MEMORY
MEMORY高速缓存是一种基于引用的高速缓存,高速缓存中的每一个对象都被赋予一个引用类型。
MEMORY的三种引用类型:
(1)
WEAK: 将很快的废弃已高速缓存的对象。
(2)
SOFT: 满足内存约束的情况下尽可能的保存高速缓存对象。
(3)
STRONTG: 永远不会被废弃。
<cacheModel type="MEMORY" id="usercache">
<flushInterval hours="24"/>
<flushOnExecute statement="inserUser"/>
<property name="reference-type" value="WEAK"/>
</cacheModel>
<insert id="inserUser3" parameterClass="User">
insert into t_user(id, name, sex, address) values
(#id:NUMBER#, #name:VARCHER#, #sex:NUMBER#,
#address:NUMBER#)
</insert>
2.LRU
LRU高速缓存模型使用最近最少使用策略来管理高速缓存。该高速缓存的内部机制会在后台记录哪些对象最近最少使用,一旦超过高数缓存大小限制就会废弃它们。
LRU非常适用于那些需要根据某些特定对象访问频率来管理高速缓存的情况。
<cacheModel type="LRU" id="usercache">
<flushInterval hours="24"/>
<flushOnExecute statement="inserUser"/>
<property name="size" value="20"/>
</cacheModel>
<insert id="inserUser3" parameterClass="User">
insert into t_user(id, name, sex, address) values
(#id:NUMBER#, #name:VARCHER#, #sex:NUMBER#,
#address:NUMBER#)
</insert>
3.FIFO
FIFO高速缓存模型采用先进先出的管理策略,是一种基于时间的策略,它总是将最老的已高速缓存对象先移出,只有当高速缓存超过大小限制的约束时,才会废弃高速缓存中最老的对象。
FIFO非常适用于初放入时使用频率很高,随着时间的流逝访问频率就会逐渐降低的对象。
<cacheModel type="FIFO" id="usercache">
<flushInterval hours="24"/>
<flushOnExecute statement="inserUser"/>
<property name="size" value="20"/>
</cacheModel>
<insert id="inserUser3" parameterClass="User">
insert into t_user(id, name, sex, address) values
(#id:NUMBER#, #name:VARCHER#, #sex:NUMBER#,
#address:NUMBER#)
</insert>
4.OSCACHE
OSCACHE高速缓存模型是第三方产品。
分享到:
相关推荐
- **3.5.1 如何选择iBATIS高速缓存模型类型** - 选择合适的缓存类型需根据具体的应用场景和需求。 - **3.5.2 如何手工强制清除iBATIS高速缓存中保存的对象** - 可以通过调用`clearCache()`方法来实现。 - **3.5.3 ...
本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL映射文件中应用这些缓存设置。 #### 一、缓存的基本概念 缓存是存储数据的一种临时区域,目的是减少重复查询数据库...
- 目前iBatis内置了四种Cache实现,包括LRU、FIFO、Memory和OsCache,但不支持用户自定义扩展Cache。 - 用户可以指定Cache的数量。 - Cache的put和get方法内部实现了同步,但在外部没有同步,这意味着当同一参数的...
在Spring+iBatis+Oracle体系中,缓存可以分为两种类型:一级缓存(本地缓存)和二级缓存。 一级缓存是iBatis默认提供的,它存在于SqlSession级别,同一SqlSession内的多次查询会共享结果,避免了重复的数据库访问。...
首先,iBATIS的缓存分为两种类型:一级缓存和二级缓存。一级缓存是SqlSession级别的,它是默认开启的,每次SqlSession内的查询结果都会被存储在一级缓存中,如果同一SqlSession内再次执行相同的SQL,会直接从缓存中...
**iBATIS缓存**是数据库访问框架iBATIS中的一个重要特性,用于提高数据查询的效率,减少不必要的数据库访问。iBATIS缓存分为一级缓存和二级缓存,它们在提升应用程序性能方面起着关键作用。 一级缓存是SqlSession...
### 解决IBatis缓存动态字段问题 #### 背景与问题描述 在使用IBatis框架处理数据库操作时,可能会遇到动态数据表名、动态字段名的情况。这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为...
3.2 iBATIS高速缓存模型的类型: - MEMORY:基于内存的缓存,适用于小规模数据。 - PERPETUAL:永久缓存,除非手动清除,否则不会过期。 通过上述介绍,我们可以看到iBATIS缓存机制是其性能优化的关键组成部分,...
ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园
iBatis 提供了四种预定义的Cache实现,包括LRU(Least Recently Used)、FIFO(First In First Out)、Memory和OsCache。LRU是基于最近使用原则,当缓存满时,最久未使用的数据会被清除;FIFO遵循先进先出的原则;...
在iBatis中,缓存被划分为一级缓存和二级缓存。 1. **一级缓存**:也称为SqlSession级别的缓存,是默认开启的。当我们在同一个SqlSession中执行相同的SQL查询时,如果第一次查询的结果已经存在于缓存中,那么第二次...
ibatis 数据缓存,讨论了ibatis 数据缓存方面的概念,即用法,用到ibatis 数据缓存的可以参考一下
源码中`org.apache.ibatis.cache.Cache`接口定义了缓存的基本操作,而具体的缓存实现如`org.apache.ibatis.cache.impl.PerpetualCache`则实现了缓存的存储和读取。 通过阅读和理解iBatis的源码,我们可以更深入地...
7. **缓存机制**:Ibatis内置了本地缓存和二级缓存,可以提高数据读取速度。本地缓存作用于单个SqlSession,而二级缓存则可以在多个SqlSession之间共享,但需要注意并发控制和数据一致性问题。 8. **插件支持**:...
书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...
书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。《iBATIS实战》的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该...
ibatis提供了两种事务管理机制:基于JDBC的事务管理和基于Java Transaction API(JTA)的事务管理。基于JDBC的事务管理适用于单个数据库的事务控制,而基于JTA的事务管理则适用于分布式事务环境,能够在多个资源管理...