JiveJdon Community Forums
在线207人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 开源项目大家谈
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 10 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
Aaroncay

发表文章: 12
注册时间: 2007年03月01日 17:36
给他发消息
求教Struts分页的问题 发表: 2007年03月01日 17:41 回复
小弟刚做J2EE开发不久,我这几天快郁闷死了我用Struts做分页有些问题。其中上页,下页,跳转功能基本实现,可就是~~举个例子吧:我表的总数量是15条的话,我在jsp页面上按每页显示10条的记录来算,到第二页应该是5条啊,可我第二页还是出来10条。我的SQL语句是:
Select top "+lineSize+" * from(Select top "+lineSize+" * from (Select top "+currentPage*lineSize+" * from Img order by id asc) temptbl1 order by id desc) temptbl2 order by id asc
其中lineSize是每页显示的页数,currentPage是当前的页码都是从servlet或者Struts中传进去的参数。可我觉得是不是currentPage*lineSize出了问题啊,哪位经验高手教教我吧给我点提示。不甚感激!
我的邮箱是:Aaroncay008@hotmail.com加我做好友就更好了
Coolyu0916

发表文章: 196
注册时间: 2007年04月23日 11:29
给他发消息
re:求教Struts分页的问题 发表: 2007年03月01日 20:19 回复
你把 currentPage 跟linsize的值自己带入进去
然后看看你的sql对不对就可以了

sql语句分页的网上很多
去google就好了
你这种写法估计bill gates看完就吐血了
好不容易提高的效率基本上也白费了
Aaroncay

发表文章: 12
注册时间: 2007年03月01日 17:36
给他发消息
re:求教Struts分页的问题 发表: 2007年03月02日 09:06 回复
我是JAVA新手,sql 语句是对的但我就是不知道怎么样才能算出下一页要显示的页数.
我在Struts中是这样写的:
int currentPage ;//当前页
int cp = cf.getCp() ;//从jsp->ActionForm传过来的跳转值
int lineSize = 10 ;//每页显示的行数
//总记录数
int allRecoreds = MydecDAO.getIn("MydecWork").getCountByImg() ;
if(cp != 0)
{
currentPage = cp ;
}
else
{
currentPage = 1 ;
}
ImgBean ib = new ImgBean() ;//业务Bean
List l = MydecDAO.getIn("MydecWork").findByAllImg(lineSize,currentPage) ;//将每页显示的行数和当前页数传进去得到一个查询全部的集合
对应方法findByAllImg()中的SQL语句:
Select top "+lineSize+" * from(Select top "+lineSize+" * from (Select top "+currentPage*lineSize+" * from Img order by id asc) temptbl1 order by id desc) temptbl2 order by id asc
如果按每页显示10条记录总记录数为15条来看的话,在第一遍执行的时候能是按每页10条来显示,在第2页我应该是5条记录才对但按我写的SQL语句中"currentPage*lineSize"来算的话也是就变成了20条了。我是不是得在Struts中加上对当前页数currentPage或每页显示页数lineSize的条件,还是这个SQL语句本身就能完成该功能。求教啊!
如果哪位高手有一个好点的通用方法,也请指出啊。最好有一个从JSP->Struts->SQL语句的简单实例,有些注释的更好啊。谢谢
Coolyu0916

发表文章: 196
注册时间: 2007年04月23日 11:29
给他发消息
re:求教Struts分页的问题 发表: 2007年03月02日 09:25 回复
sql语句是错的,我给你计算一下page = 2的时候的情况
按照3、2、1的标号顺序看


1)Select top "+lineSize+" * from(
选择前十条从刚才选择的十条里面的十条记录
2)Select top "+lineSize+" * from (
选择前十条从刚才选的记录里面,也就是前是十五条的前十条
3)Select top "+currentPage*lineSize+" * from Img order by id asc
选了最上面20条出来,可是因为只有15条记录,所以返回十五条记录
4)) temptbl1 order by id desc) temptbl2 order by id asc
Aaroncay

发表文章: 12
注册时间: 2007年03月01日 17:36
给他发消息
re:求教Struts分页的问题 发表: 2007年03月02日 10:22 回复
那这有什么办法吗解决下吗?我想不明白了
Coolyu0916

发表文章: 196
注册时间: 2007年04月23日 11:29
给他发消息
re:求教Struts分页的问题 发表: 2007年03月02日 10:34 回复
select top pagesize b.* from (select top currpage*pagesize 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段
Aaroncay

发表文章: 12
注册时间: 2007年03月01日 17:36
给他发消息
re:求教Struts分页的问题 发表: 2007年03月02日 11:08 回复
我再试试,谢谢你.对了,你是这里面的BOSS吗?
Aaroncay

发表文章: 12
注册时间: 2007年03月01日 17:36
给他发消息
re:求教Struts分页的问题 发表: 2007年03月02日 13:02 回复
谢谢谢谢,我的出来了我把SQL语句改了一下
select top "+lineSize+" * from img where id not in(select top "+(currentPage-1)*lineSize+" id from img order by id desc) order by id desc
就可以了!
不过我这样是不是消耗了太多的系统开销啊?
这儿能加分吗?我能给你加分吗?
Coolyu0916

发表文章: 196
注册时间: 2007年04月23日 11:29
给他发消息
re:求教Struts分页的问题 发表: 2007年03月02日 21:27 回复
我不是boss
只是一个最近在研究java
所以来这里

程序正确性是第一位的
效率要满足之后才要考虑
sql 2000 分页有更高的效率的方法
不过你如果最近专著于java不希望你来研究
在某段时间专著的研究某个东西可以更快的提升
sql也是很费时间的东西
Aaroncay

发表文章: 12
注册时间: 2007年03月01日 17:36
给他发消息
re:求教Struts分页的问题 发表: 2007年03月26日 13:25 回复
谢谢Coolyu0916
leoyu

发表文章: 51
注册时间: 2007年01月31日 22:11
给他发消息
re:求教Struts分页的问题 发表: 2007年04月02日 12:31 回复
从T-SQL看出你用的是MS的数据库.我BLOG上转载有一个文章,是以存储过程的方式实现的.当然你可以改也对应的JAVA类来生成翻页SQL.
http://blog.csdn.net/justin_579 数据库板块

[该贴被leoyu于2007年04月02日 12:32修改过]
这个主题有 10 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam