日期:2014-05-18  浏览次数:20764 次

jsp数据分页缓存问题
本人新学jsp请教一个问题:
      我从数据库中取了1000条数据,并分页形式,但每次点击“下一页”,“上一页”时jsp页面的javabean都会重新构建,这样第一次查询出的结果集就丢失了,因此不得不每次都执行一下查询的sql语句,这样效率好像比较低。请问有没有把第一次查询出的结果集保存下来,然后以后的页面都能从中取数据?

------解决方案--------------------
你将数据取出来后保存在collection里面,然后保存在session里面,是不会丢失的
------解决方案--------------------
可以利用一个java缓存器来实现,不过可能比较复杂,貌似apache提供一个数据缓存器
比如一条sql语句为: select * from aaa where bbb = ? and ccc = ? 定义为A
调用时利用preparedStatement 参数分别为 object[]{1,2} 定义为B
其结果为C
那么这A,B,C三才之间就有一个关系(A,B) = C,这样就可采用map形式的东东,来保存你的数据.
下一次查询时先访问这个缓存器,
这只是简单原理,希望楼主看得明白.
------解决方案--------------------
一般分页时,每次从数据库取的数据只有一页的数据,执行会很快,数据库也有缓存机制,所以我觉得就算每次显示时从数据库取也不存在多大效率问题。还有就是自己实现缓存是比较麻烦的,因为你还要保证与数据库数据同步等等问题,可以采用如hibernate这些框架来实现。