java web 问题 不同的人在查询的时候如何获得不同的内容

就是我一个人向java发送了一个请求,然后获取了一些从数据库来的数据,然后同时或者稍后还有人利用相似的条件查询,然后也会得到一批数据,但是这批数据里面不能有我已经 获得数据,求个具体思路 。
不使用操作数据库的方式。

在数据量不是特别大的情况下建议这么做:
1、程序启动就将所有数据全部加载上来,放入缓存
2、一个全局的集合,用于存放请求条件
3、每次请求到来时,首先判断全局集合中是否存在相同的条件,不存在的条件放入一个新集合,作为你当前请求的条件,当然需要把这些全局集合中不存在的条件放入全局集合中。
4、根据过滤后的新集合条件从缓存中获取数据。
备注:因为使用全局的集合,注意同步问题。
如果数据量大,那么就也只需要根据过滤后的条件集合从数据库加载
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-07
List l=null;///每次都重新赋值

return l;

或者是直接定义一个单线程ThreadLocal,就是Thread的局部变量。如果有两个用户一起进来查的话用ThreadLocal它可以把两个用户分开弄,不会搭在一块。

private static ThreadLocal<List> l=new ThreadLocal<List>();
第2个回答  2013-07-07
保存每次查询的结果集,再查询时候和上次的结果集对比,遍历一次,排除上次已有的不就行了,这种需求推荐用Map保存结果集,排除起来方便
相似回答