http://www.jdon.com:81/jive/thread.jsp?forum=16&thread=1174
解决方案 »
- hibernate 一对一关系映射 级联删除问题
- velocity怎么用啊,有谁有好的资料共享一下
- 关于response.sendRedirect(str)的一点疑惑
- 这个错误是什么原因导致的呢?以前好用现在就不好用了。
- jsp中下拉菜单的问题
- ant发布本地war文件到远程weblogic服务器
- 如何配置EC3.01+Hibernate+Spring+Lomboz+JBOSS+Tomcat
- 高手请进
- 救命:tomcat4.04下配置连接池,连接sql server2000出现问题!!!在线等待!
- JavaBean中执行多行SQL语句时,如何捕捉错误
- 一个简单的jsp问题,关于汉字乱码,在线等待,马上给分
- 30分求下载Resin 2.1.4的地址
我想到一个办法,就是一来只执行一次查询把结果集放在COOKIE或SESSION里,然后以后都从里面拿出结果就可以,了大家觉得怎么样????????????????????????????
-------------------------------------------------------引用!
你的想法有一个很大的漏洞,如果你只调用cookie或session中的数据。那么
如果是论坛你在翻页的过程中就看不到别人新发的信息的了。换句话说你这样看到的内容是你第一次访问这个页面的到的数据库内容。
zzpapple 原创 (参与分:1876,专家分:7) 发表:Sep 5, 2002 1:43 PM 更新:Sep 9, 2002 11:50 AM 版本:1.0 阅读:307次
在绝大多数的应用中,返回大量的符合条件的记录是司空见惯的,最典型的莫过于搜索了。在搜索的应用中,用户给出搜索条件,服务器查出符合条件的记录。但往往搜索会返回大量的数据记录,如果在网页中,往往是通过分页的方式来实现,页面提供诸如上一页,下一页等等按钮来实现分页。
现在主要有以下几中方式来实现分页:
1.EJB的Find方法
2.在显示第一页前将所有的记录放在collection对象中,后续的各页都在内存中取。
3.每一页都到数据库作一次重复的查询,然后将符合条件的记录显示出来。
4.保存前几页的搜索结果在内存中(经常使用到的),后续的记录(这些数据是多数用户都没有耐心看的)再通过连数据库取得。
5.其他各种cache机制。我们可以根据实际情况来选择适合自己的方法,我给大家介绍一个通过标准的SQL语句来得到符合条件的数据。如从第10到20条的符合条件(where语句中的)的记录。通过这种方法取得记录有一个必要条件,必须有一个能够标识记录顺序的字段,如id,time等等。下面我为大家演示一个例子:
查询t_table表中所有记录第10到20条,按id排序。
SQL语句为:
SELECT * FROM t_table t1 WHERE (SELECT count(*) FROM t_table t2 WHERE t2.id < t1.id ) >= 10 AND (SELECT count(*) FROM t_table t2 WHERE t2.id < t1.id ) < 20又如查询t_table表中key='123'第10到20条的记录,按id排序。
SELECT * FROM t_table t1 WHERE (SELECT count(*) FROM t_table t2 WHERE t2.id < t1.id AND t2.key = '123') >= 10 AND (SELECT count(*) FROM t_table t2 WHERE t2.id < t1.id AND t2.key = '123') < 20 AND t1.key = '123'当然条件中的id可以换为任何能表识记录顺序的字段