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

ibatis 缓存模块 key实现类

    博客分类:
  • java
阅读更多
  //更新CacheKey hashcode ,每个参数加进来都会更新一次hashcode 
  public CacheKey update(Object object) {
    int baseHashCode = object.hashCode();

    count++;
    checksum += baseHashCode;
    baseHashCode *= count;

    hashcode = multiplier * hashcode + baseHashCode;

    paramList.add(object);

    return this;
  }

  //CacheKey 的 equals 方法显的有点烦锁
  public boolean equals(Object object) {
    if (this == object) return true;
    if (!(object instanceof CacheKey)) return false;

    final CacheKey cacheKey = (CacheKey) object;

    if (hashcode != cacheKey.hashcode) return false;
    if (checksum != cacheKey.checksum) return false;
    if (count != cacheKey.count) return false;

    for (int i=0; i < paramList.size(); i++) {
      Object thisParam = paramList.get(i);
      Object thatParam = cacheKey.paramList.get(i);
      if(thisParam == null) {
        if (thatParam != null) return false;
      } else {
        if (!thisParam.equals(thatParam)) return false;
      }
    }

    return true;
  }
分享到:
评论

相关推荐

    iBATIS缓存

    iBATIS的缓存实现主要依赖于Java的Map接口,通过自定义的缓存实现类(如DefaultCache)进行管理。在处理并发访问时,iBATIS可能会使用到线程安全的数据结构,如ConcurrentHashMap,以保证多线程环境下的安全性。 总...

    iBATIS缓存介绍

    ### iBATIS缓存介绍 #### 一、缓存介绍 **1.1 缓存对象** 理论上,Web分层设计的各个层都可以有缓存,Web中的任何对象都可以成为缓存的对象。例如: - **HTTP请求结果的缓存**:如页面数据或API响应。 - **...

    iBATIS缓存的使用方法

    ### iBATIS缓存的使用方法 在数据库访问框架iBATIS中,缓存机制是一项重要的功能,它能够显著提高应用程序的性能。本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL...

    ibatis缓存介绍 - 勇泽 - 博客园.mht

    ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园

    解决IBatis缓存动态字段问题

    ### 解决IBatis缓存动态字段问题 #### 背景与问题描述 在使用IBatis框架处理数据库操作时,可能会遇到动态数据表名、动态字段名的情况。这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为...

    ibatis-缓存使用示例

    对于源码的阅读,可以更直观地了解iBATIS如何实现缓存的存储和检索,这对于调试和优化系统性能非常有帮助。同时,工具的熟练运用,如使用IDEA的Debug模式跟踪代码执行,可以帮助更好地理解和调试缓存逻辑。 总之,...

    ibatis 缓存配置策略

    iBatis 缓存配置策略是提高数据库查询性能的关键手段之一。iBatis 提供了本地缓存机制,用于存储查询结果集,减少不必要的数据库访问。以下是对iBatis缓存配置策略的深入解析: 首先,iBatis 的 Cache 键(key)是...

    Java_ibatis缓存技术

    - **自定义缓存实现**:若系统需求特殊,可以自定义缓存实现类,通过`@CacheNamespaceRef`注解引用。 - **缓存刷新**:当数据库数据更新时,需要及时清理缓存以保持数据一致性。可以通过`flushCache="true"`属性来...

    Java ibatis缓存技术

    - **type**:指定缓存的实现类型。常见的类型包括“MEMORY”、“LRU”、“FIFO”等。 - “MEMORY”(`com.ibatis.sqlmap.engine.cache.memory.MemoryCacheController`):使用软引用管理缓存中的对象,当内存紧张时...

    ibatis 缓存 - 24小时学习网.mht

    ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网

    iBATIS缓存介绍[借鉴].pdf

    iBATIS,作为一个流行的数据访问框架,也提供了缓存功能来优化数据库查询。本文将详细介绍iBATIS缓存的概念、类型以及配置方法。 一.缓存介绍 缓存,简单来说,是为了减少对数据库的频繁访问,将常用数据存储在...

    ibatis_数据缓存

    iBatis 数据缓存机制是提高数据库访问性能的重要手段,它允许将查询结果存储在内存中,以便后续相同查询能够快速获取数据,而无需每次都执行SQL查询。在深入理解iBatis的Cache概念之前,首先需要知道iBatis是一个轻...

    ibatis 数据缓存.pdf

    ibatis 数据缓存,讨论了ibatis 数据缓存方面的概念,即用法,用到ibatis 数据缓存的可以参考一下

    ibatis 框架原理实现

    **Ibatis 框架原理实现** Ibatis 是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,从而避免了Java代码与SQL的耦合,提高了开发效率。在这个自己编写的Ibatis框架实现中,我们可以看到类似的...

    spring+ibatis+oracle分页缓存源码

    总的来说,"spring+ibatis+oracle分页缓存源码"项目展示了如何在Spring管理的环境中,利用iBatis和Oracle数据库实现高效的数据分页和缓存策略。通过理解和实践这些技术,开发者可以构建出更加健壮、响应快速的Web...

    iBATIS_DAO事务管理实现

    本文将深入探讨iBATIS DAO事务管理的具体实现方式及其配置细节,并通过分析相关的类结构图来更好地理解其内部工作原理。 #### 二、iBATIS DAO事务管理支持的事务管理框架 iBATIS DAO框架当前支持以下七种不同的...

    IBATISDAO库类操作

    通过泛型机制,`IBATISDAO`可以适应不同的实体类,实现了对多种数据库表的操作。 **3. 使用IBATISDAO进行数据库操作** - **查询操作**:`selectOne()`用于根据主键获取单个对象,`selectAll()`则返回所有记录。...

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

    解析这个XML文件的过程涉及到DOM或SAX解析器,源码中这部分功能通常在`org.apache.ibatis.io.Resources`和`org.apache.ibatis.builder.Configuration`类中实现。 三、Executor执行器 Executor执行器是iBatis的核心...

Global site tag (gtag.js) - Google Analytics