JAVA项目中的真分页与假分页的代码怎么写~

JAVA项目中的真分页与假分页的代码怎么写~,第1张

真分页:每次从数据库里按照排序方法,取一段数据,比如每页20条,第一页就是1-20 ,第二页就是21-40。它是每次都从数据库里查询。都是最新的。假分页:一次从数据库里得到很多页的数据,然后缓存起来。比如每页20条,一次取了100条,缓存起来。第一页依然是1-20 ,第二页就是21-40。到第6页的时候,再从数据库里取101-200条,在缓存起来。只不过,取数据的时候不是从数据库里取了,而是在缓存里取。但是这个数据有可能不是最新的,因为不是直接从数据库里查询的。这种多用在更新不多的数据上。

1、新建模板

新建模板mutipage.cpt,为了加快展示速度,我们可以使用分页查询,获取每个产品的详细信息并计算产品对应的订单中的应付金额,因此添加数据集时查询SQL语句为select 产品.产品ID,产品名称, 供应商ID , 类别ID, 单位数量, 产品.单价, 产品.库存量, 产品.订购量,sum(应付金额) as 应付款项 from 产品,订单,订单明细 where 产品.产品ID=订单明细.产品ID and 订单明细.订单ID=订单.订单ID and 产品.产品ID between 10*(${page}-1)+1 and 10*${page} group by 产品.产品ID,产品名称, 供应商ID , 类别ID, 单位数量, 产品.单价, 产品.库存量, 产品.订购量 order by 产品.产品ID,设置参数page的默认值为1,首次看到的是第一页,只查询出第1~20条记录;若page参数为2时,查询出第21~40条记录,即第二页内容。

2、自定义上一页、下一页按钮

在单元格中求出上一页、下一页页码的值

自定义上、下一页按钮

点击模板>模板web属性>分页预览设置,选择为该模板单独设置,在工具栏中增加两个自定义按钮分别命名为上一页,下一页,是工具栏上只剩下如下图所示几个按钮。

3、第一页与最后一页处理

求出总页数

双击总数所在单元格d出数据列设置对话框,选择高级>自定义显示,在自定义中填入公式:roundup($$$/10,0)求出总页数。

将第一行的行高设置为0,或者是隐藏:

上一页按钮设置:选中上一页自定义按钮,点击自定义JavaScript,在js中填入

var page= $("tr[tridx=0]","div.content-container").children().eq(0).html()  

if(page==0)//如果报表显示第一页,则上一页不可用

this.setEnable(false)

else

window.location.href="${servletURL}?reportlet=doc/Advanced/multipage.cpt&page="+page

下一页按钮设置与上一页的js差不多,只需要获取B1的值就可以了,所以在js中填入

var page= $("tr[tridx=0]","div.content-container").children().eq(1).html()  

var total=$("tr[tridx=0]","div.content-container").children().eq(2).html()  

if(parseInt(page) > parseInt(total))//如果报表显示最后一页,则下一页不可用

{

this.setEnable(false)

}

else

window.location.href="${servletURL}?reportlet=doc/Advanced/multipage.cpt&page="+page

分页预览即可查看效果

1、首先我们建立一个表表的数据,这个表里有25条数据,id从1到25。(下图是部分截图)

2、要分页数据,首先我们假设一页有10条数据,我们可以用mysql的 limit关键字来限定返回多少条数据。并且用order by来排序数据,这里用 id来排序。所以第一页的sql可以如图这样写。

3、执行后得到的数据如图,就是 id从1到10的前10条数据,因为我们是按id升序来排序的。

4、上面第一页的sql是简化的写法,完整的写法如图,得到的结果和上图的一模一样。代码里 limit 0, 10 的意思是从第一条数据开始,取10条数据。(注意的是第一条数据是从0开始的)

5、那么第二页的数据,关键是要知道是从哪一条数据开始,可以用这个公式得到: (页码-1)  * 每页显示多少条,即 (2-1) * 10 = 10, 所以sql语句如图, limit 10, 10。

6、执行后,结果正确,得到id从11到20的10条数据。

7、同理第三页数据的sql如图,<br/>就是 limit 20, 10。

8、查询的结果如图,因为这页只剩下5条数据了,所以只显示5条数据。如果你有更多页的数据,后面的数据只需要按上面的公式,得到从哪行开始,就可以写对应的sql语句了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10062219.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存