//更新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二级缓存 iBATIS缓存配置
iBATIS缓存的使用方法
ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园
如何解决动态数据表名,动态字段名情况下,由ibatis缓存select字段而引起的字段找不到的情况?以下是最简单的解决办法! 本文中内容真实可靠,保证用户很快掌握
ibatis 缓存配置策略,学习篇 • iBatis对查询结果集进行本地缓存。 • Cache的key由haskcode、checksum、查询参数、sqlmap Id、sql语句、调用方法名等构成。由此可以看出,不同的参数会有不同的Key。注意,他不是以...
Java ibatis缓存技术,ibatis缓存的详细解释 值得学习!
ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网
Java_ibatis缓存技术
NULL 博文链接:https://mov-webhobo.iteye.com/blog/1672240
ibatis 数据缓存,帮你了解ibatis的数据缓存机制。
iBATIS缓存介绍[借鉴].pdf
ibatis 数据缓存,讨论了ibatis 数据缓存方面的概念,即用法,用到ibatis 数据缓存的可以参考一下
NULL 博文链接:https://sunfish.iteye.com/blog/1493410
自己写的ibatis 框架,跟ibatis功能差不多
ibatis实现原理解析
ibatis学习 ibatis总结 ibatis ibatis ibatis
IBATISDAO库类操作IBATISDAO库类操作IBATISDAO库类操作IBATISDAO库类操作
spring+ibatis+oracle分页缓存源码