论坛兄弟们好,介于 上一个 帖子: http://topic.csdn.net/u/20110418/22/ad49ffaa-60bc-4971-96ca-063c9b845e42.html?37858  一款人力资源管理系统!
  
   我现在详细说明一下我的疑问,希望 论坛上的兄弟们 多少给点帮助!   我使用的是 自定义缓存 简称 缓存  (在 单例模式里面 存储数据)   我想达到的目的是 1.所有用户共享数据    例如:我是超级管理员 查找一下 所有用户,然后又登陆一个管理员号,也 查找所有用户  ,这时候的过程 是 :1.超级管理员已经查找过 所有用户了,我已经把 所有用户的数据保存在 缓存中了 2.管理员 查找的时候,我先 检查 缓存中有 所有用户的数据吗? 如果有,我则从缓存中直接获取,如果没有,从数据库中加载所有用户,得到 所有用户之后,保存进入 缓存中 . 3.下一次 别人使用的时候,就可以不用再次访问数据库了。   2.操作缓存   继续上一个例子,我已经 加载出了 所有用户,并且已经保存进入了 缓存中 ,这个我们就不管   我现在要添加一个用户,直接保存进数据库 insert into ,然后更新缓存,为什么要更新缓存?  
  就是说,我把当前的那个Users 用户对象 保存 也保存进缓存 在页面显示的时候,刚才更新的用户就可以显示出来了。
 
   反正总的意思就是  我添加 用户,删除用户,更改用户,根据Id得到或者根据条件查询用户,都不会在从数据查找了。   直接从缓存中拿出数据,除了第一次要加载全部的数据以外,所有的操作只需要操作缓存就可以了。   问题:请 论坛上的兄弟们 分析下 这种方法好不好?   还有一个问题,我的 List 全都保存在 session 中 所有得到的对象都是 在 保存在 session 中,你们是保存在哪里的呢?  
   
   
   

解决方案 »

  1.   

    你的问题hibernate缓存都已经实现了 至于你不清楚为什么要更新缓存? 
    你所有的增加 删除 修改 是基于数据库操作 你的缓存对象都是在内存里
    所以你必须自己更新还有session 不是你这样用的 session资源本身很宝贵 不要什么东西都往里扔你可以将缓存信息放在一个全局变量的集合里面
      

  2.   

    如果用hibernate,那么直接使用hibernate支持的一些缓存通过配置文件配置哪些对象需要缓存即可,比如echache等。