如何实现Oracle数据库的分页显示?

如何实现Oracle数据库的分页显示?,第1张

1.使用T_BASE_PROVINCE表作为测试演示使用

2.查询下总共数据量selectcount(*)fromT_BASE_PROVINCE,在分页的时候,一般会显示总页数,需要先查询总数据量得到总页数,总页数=总量/每页显示记录数。

3.前面的测试数据初始化完成之后,查询前20条大概有什么样的数据。

4.含orderby排序,多一层嵌套,因为orderby在select之后执行,不在里面写的话可能会出现不是预期的排序结果。

如以上回答未能解决问题请看:

一种是利用相反的。

使用minus,即中文的意思就是减去。

一种是利用Oracle的rownum,这个是Oracle查询自动返回的序号,一般不显示,但是可以通过selectrownumfrom[表名],可以看到,是从1到当前的记录总数。  

针对查询语句做处理,同时对请求页面地址做分析

list.aspx?pageid=5 //表示访问第五页

后台语言里,先对查询条件做预处理

pagepre=pagesize*4 //pagesize 用于表示分页大小,例如10,则前4页共有40条记录

查询语句

sqlcmd="select top "+pagesize+" from tabelname where id not in (select top "+pagepre+" from tablename order by id desc)"

*** 作原理为将当前页前显示的所有记录从数据查询结果中排除,也就是not in 后面的部分,然后从剩余的结果冲,读取pagesize大小的记录值。筛选条件、排序条件放在子查询中

原料,mybatis的jar包,各种数据库的分页sql语句。

这就要看你是使用何种数据库了,因为有些数据库的分页实现可以更简单,比如MySql的limit关键字,而mybatis必须通过sql语句才能实现分页,所以在我们的<select>标签可以这样写:参数paramterType可以传一个封装了分页信息(比如当前页数,每页大小等)对象,如果是带条件的分页,可以将分页的对象和条件对象放入一个map中。然后在sql语句中就可以用#{}访问分页信息:

比如Mysql的分页:

select  *  from  Student  limit   #{pageSize*(pageNo-1)}  #{pageSize}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存