社区
Java
帖子详情
[强调通用]Java数据访问层如何实现通用分页?!各种实现的优劣。
sharedata
2003-11-26 11:06:40
我要需要实现一个通用的分页方法(在Java数据访问层)。大家觉得通用的分页如何实现?怎么做更好?PetStore的方式觉得如何?如果选择PetStore的方式,您觉得她哪里不好?
请比较挑剔的帮我想想吧,这里先谢谢了!
说明:
1:问题的关键是通用,也就是让绝大部分人满意;
2:尽可能的给出设计甚至代码作参考更好;
3:请详细的评论各种实现的好坏;
4:可以给出参考哪些具体的东西,但希望有很好的水准的实现。
...全文
135
26
打赏
收藏
[强调通用]Java数据访问层如何实现通用分页?!各种实现的优劣。
我要需要实现一个通用的分页方法(在Java数据访问层)。大家觉得通用的分页如何实现?怎么做更好?PetStore的方式觉得如何?如果选择PetStore的方式,您觉得她哪里不好? 请比较挑剔的帮我想想吧,这里先谢谢了! 说明: 1:问题的关键是通用,也就是让绝大部分人满意; 2:尽可能的给出设计甚至代码作参考更好; 3:请详细的评论各种实现的好坏; 4:可以给出参考哪些具体的东西,但希望有很好的水准的实现。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gunandrose
2004-02-26
打赏
举报
回复
实话说,这些方法都不怎么样,一看都是刚入门的写法,数据量超过10万条,根本没办法用。
告诉你们个思路:
逻辑层应该只做取数据的运算,把个结果集通过XML返回到浏览器,
分页,查询等等功能统统由浏览器来做,用JAVASCRIPT。
不明白的可以留言给我。
swinging
2004-02-25
打赏
举报
回复
我现在发现,不分页是最好的。
sweat。
xuzhenhua21
2004-02-23
打赏
举报
回复
mark
ydincoder
2004-02-18
打赏
举报
回复
mark
icebluenet
2004-02-13
打赏
举报
回复
mark
futurebus
2004-02-03
打赏
举报
回复
收藏。
进来学习学习。
arkang168
2004-01-08
打赏
举报
回复
up
sharedata
2004-01-06
打赏
举报
回复
暂不结贴,可以继续扩展话题到 整个分页的前端实现(上面的更多的是后端实现)。可以直接交流代码。
谢谢上述所有的朋友们!
sheryee
2004-01-05
打赏
举报
回复
楼上的各位,大家用的都是JDBC2.0所支持的方式,有没考虑过如果不支持的写法呢?
raymond323
2004-01-05
打赏
举报
回复
up
swinging
2003-12-30
打赏
举报
回复
具体的分页,可以参考hibernate。
我现在用的一个通用分页处理,其基本结构是这样的:
1、一个Page接口,使用接口,这样能处理很多意外情况,除了对LIST分页,有时候需要对XML DOCUMENT中的数据分页。所以,这样的接口很必要。
2、目标数据库是ORACLE,这是我目前使用的,其它数据库可以参考,
使用TYPE封装一个参数对象,主要的属性有:当前页码、总页数、总记录数、每页行数、是否有下一页、是否有上一页等等。
然后是一个查询参数对象,主要属性有:SQL语句的SELECT子句、WHERE子句、ORDER BY子句,之所以是子句,是要用于翻页时查询总记录数,因为不是一次查询所有记录(那样效率有问题),所以只是查找当前页所需的记录,而总记录数则另查。
查询时获取当前页码和每页记录数,将STRUCT对象传递给存储过程,存储过程根据给定参数组织动态SQL语句,查询结果,并返回,由相关DAO包装成PAGE实例。
查询当前页所需记录由当前页码和每页记录数计算,由SQL语句中ROWNUM作为WHERE子句条件过滤查询结果集。
另外,ROWNUM不是在排序前完成的,刚好相反,是完成排序后才出来的。
raymond323
2003-12-30
打赏
举报
回复
up
miwoo
2003-12-26
打赏
举报
回复
用hibernate好了:)
hotsmile
2003-12-26
打赏
举报
回复
好!!
sharedata
2003-12-25
打赏
举报
回复
目前采用PetStore的Page分页方式。上面的我会好好的看看的。
gks_cn
2003-12-18
打赏
举报
回复
分页要做通用的不好做,如果考虑用absolute需要把所有的记录都查出来,取要的。
如果记录急太大就要出问题。
如果用sql里面加rownum来控制,这样通用性又要大折,
所以小的查询可以分页,大的就不分了,如果要分要控制sql的结果几
samlu
2003-12-18
打赏
举报
回复
//设置记录集的光标到当前的第一条记录上
FRS.absolute(FFirstRecord);
在记录数达到几十万的数量级时你试试这个方法,非常慢,并且有时会抛出例外.
应该在rs中实现分批去记录,用要显示第一条记录数来控制rs.next()要比用absolute好.
rownum的执行在排序之前,用这个方法有可能你的几个页会出现同一条记录.
cnlf
2003-12-12
打赏
举报
回复
经典,已收藏!
lu8088
2003-12-11
打赏
举报
回复
up
过客猫2022
2003-12-09
打赏
举报
回复
对于MYSQL及Oracle还有一种叫rownum的东西,可有过它的分页
比如好像下面:
select * from test where rownum<(pagesize*(page+1)) and rownum(pagesize*page-1)
就可以实现在数据库方面分页了
对于不是很多的记录可用我的那个类XPageControl来实现.
如上面的类,例
XPageControl pc=new XPageControl(aResultSet,nnowPage,nPageSize);
while(pc.isInPage())
{
System.out.println(aResultSet.getString("name"));
pc.next();
}
System.out.println(pc.getMaxPage());
System.out.println(pc.getPageSize());
System.out.println(pc.getPage());
加载更多回复(6)
低清版 大型门户网站是这样炼成的.pdf
11.4.1 展示
层
jsp 2+struts 2标签库
实现
711 11.4.2 控制
层
struts 2
实现
720 11.4.3 持久
层
hibernate 3
实现
728 11.4.4 spring 2接管业务逻辑
层
730 11.5 小结 733 第12章 站务必备—系统用户管理与流量统计 ...
RHCE redhat学习笔记
3.4.3 多IP配置 4 主机名查看及设置 4.1 编辑/etc/hosts文件 5 标准服务端口 5.1 端口和服务故障排查 6 双网卡绑定bond模式 6.1 bond级别 6.2 bond
实现
步骤 6.3网桥: 7针对部分情况,网卡未加入托管导致 7.1解决...
Java
Web
分页
技术
实现
实现
了
Java
Web
分页
技术:内存
分页
与
数据
库
分页
,并对
分页
进行了封装,学习该课程可以掌握
分页
的整个技术
实现
过程。技术参数:
Java
+Servlet/Jsp
实现
分页
数据
库:MySQL课程中包含内存
分页
、
数据
库
分页
、按添加查询
分页
、以及
分页
封装及源代码,通过该课程,可以掌握
分页
的
实现
过程,建议由兴趣的同学可以学习一下!
10万字208道
Java
经典面试题总结(附答案)
JDK(
Java
Development Kit),
Java
开发工具包 JRE(
Java
Runtime Environment),
Java
运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。...
(完整版)2022大厂
Java
八股文面试题库|附答案
Java
基础 说下面向对象四大特性
Java
语言有些特点 什么是
Java
程序的主类?应用程序和小程序的主类有何不同?
访问
修饰符public,private,protected,以及不写(默认)时的区别?...
Java
有哪些
数据
类型 final
Java
50,545
社区成员
85,621
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章