`
zhang_xzhi_xjtu
  • 浏览: 536836 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

iBATIS的cache

    博客分类:
  • db
阅读更多
<settings cacheModelsEnabled="true" />是一定要配置的,不然cache不起作用。

readonly的配置

当readonly为true时,serialize是没有意义的,每个返回的对象就是cache中的对象,所以如果改动了该对象,则cache和数据库就不一致了。当readonly为true是不改动返回值要靠我们人工了。

当readonly为false时,serialize为false时,cache的实体是不需要实现Serializable的,但是很奇怪的是,其返回的实体不是原本cache中的实体,改动返回值不会影响以后的返回值。serialize为true时,cache的实体是需要实现Serializable的,其返回值应该是cache中的一个copy,所以可以随便修改而不影响cache。

看一个性能测试,对一行数据读取100000次。

条件                                                               时间(毫秒)

没有cache                                                   53164
readonly=true,                                            1406
readonly=false,serialize=false,               54538
readonly=false,serialize=true,                 4077

结论:
1 可以看出,加入cache后性能提升还是很可观的。
2 readonly=false,serialize=true的cache比readonly=true的慢一点,但是不是很多,想比没有cache的情况还是性能提升很大。
3 奇怪的readonly=false,serialize=false得到了解答,从测试结果看,应该是每一次都是到db直接读的,这个和没有配置cache差不多,又因为一些关于cache的code,应该比没有cache还慢一点点。
分享到:
评论

相关推荐

    Java_ibatis-cache.rar_cache

    在Java开发领域,iBatis作为一个轻量级的持久层框架,因其简洁高效而深受开发者喜爱。...阅读《Java_iBatis cache.doc》文档,你会获得更详细的实践指导和示例代码,进一步深化对iBatis缓存的理解。

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    源码中`org.apache.ibatis.cache.Cache`接口定义了缓存的基本操作,而具体的缓存实现如`org.apache.ibatis.cache.impl.PerpetualCache`则实现了缓存的存储和读取。 通过阅读和理解iBatis的源码,我们可以更深入地...

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    此外,iBATIS还提供了一些辅助工具,如`ParameterMap`用于管理SQL语句的输入参数,`ResultMap`用于处理查询结果的映射,以及`Cache`机制,用于缓存查询结果,提高系统性能。这些工具类使得开发者能够更方便地进行...

    ibatis_数据缓存

    在深入理解iBatis的Cache概念之前,首先需要知道iBatis是一个轻量级的持久层框架,它将SQL映射与Java代码分离,提供了更灵活的数据库操作方式。 **Cache概述** iBatis 提供了本地数据缓存功能,用于存储查询结果集...

    ibatis_with_memcached

    3. **配置Ibatis**:在Ibatis的配置文件中,定义一个Memcached的Cache实现,指定缓存的ID、超时时间等参数。 4. **创建缓存插件**:编写自定义的Ibatis拦截器,拦截SQL执行,实现数据的缓存和读取。 5. **在Mapper...

    iBATIS内置别名列表

    3. **MEMORY**:`com.ibatis.sqlmap.engine.cache.memory.MemoryCacheController` - 内存缓存策略直接将数据存储在内存中,提供最快的访问速度。 4. **OSCACHE**:`...

    iBATIS 2.0 开发指南

    - **缓存**:iBATIS 支持多种缓存策略,包括 MEMORY 类型 Cache、LRU(最近最少使用)类型 Cache、FIFO(先进先出)类型 Cache 以及 OSCache。 - **MEMORY 类型 Cache**:内存中的简单缓存,支持弱引用,适用于小...

    iBATIS缓存的使用方法

    1. **MEMORY (com.ibatis.db.sqlmap.cache.memory.MemoryCacheController)** - 这是最简单的缓存实现方式,使用引用计数来管理缓存项。当一个缓存项的引用计数为零时,该项就会被移除。 - MEMORY缓存不支持统一的...

    ibatis3.0示例

    `&lt;cache&gt;`标签在XML配置文件中定义缓存配置,通过SqlSession的getCache()方法获取缓存实例。 7. **事务管理** iBatis 3.0支持编程式和声明式事务管理。编程式通过SqlSession的beginTransaction(), commit()和...

    ibatis最新最全开发指南

    缓存(Cache)是 Ibatis 提升性能的一个重要特性。Ibatis 提供了几种类型的缓存,如基于内存的缓存(MEMORY 类型,可能结合 WeakReference 使用)、LRU(Least Recently Used)缓存、FIFO(First In First Out)缓存...

    iBATIS 2.3 API JavaDoc chm格式

    8. **Cache**:iBATIS的缓存机制可以提高数据读取效率,减少不必要的数据库访问。 9. **Exception Handling**:iBATIS抛出的异常体系,如`SqlMapException`,`DataIntegrityViolationException`等,可以帮助开发者...

    ibatis.doc

    缓存(Cache)功能是iBATIS提高性能的重要手段,它提供了几种类型的缓存策略,包括MEMORY类型(基于内存的缓存,可能使用WeakReference防止内存泄漏)、LRU(Least Recently Used,最近最少使用,一种淘汰算法)和...

    J2EE学习 Ibatis开发资料共享 Ibatis开发资料 Ibatis学习框架 Ibatis开发概要

    ### J2EE学习:Ibatis开发资料概要 #### 一、Ibatis简介与特点 Ibatis是一款半自动化的ORM(Object Relational Mapping)框架,它不像Hibernate等其他ORM工具那样提供完全自动化的数据库操作,而是更侧重于SQL语句...

    ibatis资料大全

    ### ibatis资料大全知识点概述 #### 一、ibatis简介及特点 - **定义**:ibatis是一个开源的持久层框架,它简化了Java应用程序与数据库之间的交互过程,但相较于其他如Hibernate这样的“一站式”ORM解决方案,...

    ibatis环境搭建教程

    - ****:设置ibatis运行时的行为参数,如最大请求数(`maxRequests`)、最大会话数(`maxSession`)、最大事务数(`maxTransaction`)以及语句缓存大小(`statementCacheSize`)等。 ##### 2. Statement元素 - **id**:唯一...

    ibatis-缓存使用示例

    在IT行业中,数据库操作是应用程序开发的核心部分,而iBATIS作为一个流行的持久层框架,它为Java开发者提供了方便的数据访问接口。本示例主要关注iBATIS的缓存功能,这是提升系统性能的重要机制。缓存可以减少对...

    iBATIS缓存

    例如,在`&lt;select&gt;`标签中添加`useCache="true"`来开启查询结果的缓存,或者在`&lt;cache&gt;`标签中定义缓存的配置,包括缓存类型、大小、过期时间等参数。 iBATIS的缓存机制不仅限于简单的数据存储,还支持基于查询条件...

Global site tag (gtag.js) - Google Analytics