论坛首页 Java企业应用论坛

ibatis缓存

浏览 15791 次
锁定老帖子 主题:ibatis缓存
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-06  
2我不知道,但3是默认就使用缓存的,如果查询条件完全一样的话,还得调用session的方法手动清掉。
0 请登录后投票
   发表时间:2011-06-19  
说的有点模糊...
0 请登录后投票
   发表时间:2011-08-11  
ibatis如何实现联表查询功能
0 请登录后投票
   发表时间:2011-08-23  
最好不要用memory cache。看了下源码其实现原理就是用hashmap作为缓存容器,value用weak-reference,这样虽然在GC时如果内存不足可以释放value,可是其key值还是在数量很多导致内存溢出。


为什么key值不能被回收,我们自己在程序中创建的map对象,在回收的时候会有相同问题出现吗?
0 请登录后投票
   发表时间:2011-08-25  
zzy7182 写道
最好不要用memory cache。看了下源码其实现原理就是用hashmap作为缓存容器,value用weak-reference,这样虽然在GC时如果内存不足可以释放value,可是其key值还是在数量很多导致内存溢出。


为什么key值不能被回收,我们自己在程序中创建的map对象,在回收的时候会有相同问题出现吗?


同问,内存cache好像很多是hashmap实现的,没有这种问题吧
0 请登录后投票
   发表时间:2011-08-25  
缓存不在于是ibatis还hibernate
1 请登录后投票
   发表时间:2011-09-01  
当其外部的数据库连接甚至是数据库管理系统,对数据库进行了更改,iBatis(MyBatis)的缓存如果没有过期,是不会对数据库的修改做出相应的?这一点有什么好的解决方案?

再简单的描述一下(假设数据库系统为MySQL),例如有一个Java的应用持久层框架是使用iBatis(MyBatis)有一个每个500ms(毫秒)调用一次对数据库中ID为100的记录进行 select 操作,由于缓存的时间很长,此时有一个外部程序,假设此程序为一个C/C++程序通过mysql C API 连接到当前数据库(和java应用程序同一个数据库)它将ID为100的记录删除了。然而此时java应用中每个500ms对此记录进行select 操作依然有效!这个很郁闷,iBatis(MyBatis)的缓存有什么选项能够对外部数据库连接对记录进行修改或者删除能让iBatis(MyBatis)主动清除缓存?
0 请登录后投票
   发表时间:2011-10-26   最后修改:2011-10-26
<property name="size" value="1000" />
这句应该错了吧  momery 缓存应该是 :<property name="reference-type" value="strong" />

fifo 和 lru 缓存 才为 :<property name="size" value="1000" />
0 请登录后投票
   发表时间:2011-12-19  
cppmule 写道
当其外部的数据库连接甚至是数据库管理系统,对数据库进行了更改,iBatis(MyBatis)的缓存如果没有过期,是不会对数据库的修改做出相应的?这一点有什么好的解决方案?

再简单的描述一下(假设数据库系统为MySQL),例如有一个Java的应用持久层框架是使用iBatis(MyBatis)有一个每个500ms(毫秒)调用一次对数据库中ID为100的记录进行 select 操作,由于缓存的时间很长,此时有一个外部程序,假设此程序为一个C/C++程序通过mysql C API 连接到当前数据库(和java应用程序同一个数据库)它将ID为100的记录删除了。然而此时java应用中每个500ms对此记录进行select 操作依然有效!这个很郁闷,iBatis(MyBatis)的缓存有什么选项能够对外部数据库连接对记录进行修改或者删除能让iBatis(MyBatis)主动清除缓存?



这个没办法的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics