jsp之分页-创新互联

1. 如何控制每页显示数据量?

成都创新互联公司专注于登封企业网站建设,响应式网站设计,商城网站建设。登封网站建设公司,为登封等地区提供建站服务。全流程按需策划设计,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

若每页的数量为pageSize, 总数量为totalSize,那么在oracle数据库中的sql语句应该如何去书写.首先假设每页显示数量为5,总数量为21,使用的表名为topic那么显示前5条数据的sql语句为:

select t.*,rownum r from topic t where rownum < 6;

那么第二页的数据又该如何去写?若是按以下写法会出现什么情况?

select t.*,rownum r from topic t where rownum >5 and rownum < 10;

结果很明显:没有结果! 因为rownum伪列只会从第一个开始排序计算,而不能从第六位开始.但是如何取得第二页数据?

其实可以先创建一个虚拟表,虚拟表中含有一个伪列rownum,然后再查询这个虚拟表中的rownum,此时的rownum可以看做一个实际的列,具体代码如下:

select * from (select t.*,rownum r from topic t) where r>5 and r<=10;

这样就可以查询到第二页数据.

2. 如何计算页数?

既然已经知道了总数和每页显示的数目,那么总页数也可以很容易计算. 若设每页显示数量为pageSize,总数量为totalSize,页数为pageIndex.所以先从以下两点考虑:

(1) 若totalSize/pageSize 正好等于一个整数,则这个整数就是页数;

(2) 若totalSize/pageSize 不等于某一个整数,也就是说最后一页显示的数目小于pageSize,此时的页数是(totalSize/pageSize)的整数部分 +1.

基于以上两种情况,计算总页数的方法可以设计为:

第一种方法:使用三目运算符,若totalSize正好被pageSize整除,那么直接取totalSize/pageSize,否则取totalSize/pageSize + 1.

int pageIndex = totalSize % pageSize == 0 ? (totalSize/pageSize) : (totalSize/pageSize + 1);

第二种方法:使用向上取整方法:

int pageIndex = (int)(Math.ceil((double)totalSize/pageSize));

这里首先要将totalSize或者是pageSize转为double类型,这样所获得的结果就是double类型,然后使用向上取整Math.ceil(double d),再将结果强转为int型.

在这里也提一下向下取整吧.首先可以使用 Math.floor(double d)方法,也可以使用 int num = a / b;其中a,b为int类型,如果不是,可以进行强转:int num = (int)(a / b);

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

本文名称:jsp之分页-创新互联
本文链接:https://www.cdcxhl.com/article22/jecjc.html

成都网站建设公司_创新互联,为您提供域名注册服务器托管软件开发微信小程序营销型网站建设网站营销

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设