数据库分页

技巧:
a.确定每页显示的记录数
b.获取总记录数
c.1.确定分页后的总页数(总记录数/每页显示的记录数),有余数时,总页数加1 2.准确计算出分页后的总页数(总记录数-1)/每页显示的记录数+1)推荐使用
d.根据当前页显示数据(页数小于1时,则使其等于1,页数大于最大页数时,则使其等于最大页数)
e.通过for循环显示结果

1.SQL Servler数据库
获取分页后第二页的数据(查询不包含数据表前4条记录):

select top 4 *  from book where BookNO not in(select top 4 BookNO from book order by BookNO asc) order by BookNO asc;

pagesize:指定分页后每页显示的记录数

page:用于指定当前页数

select top "+pagesize+" *  from book where BookNO not in(select top "+(page-1)*pagesize+" BookNO from book order by BookNO asc) order by BookNO asc;

2.MySQL数据库
第一页:select * from tb_user LIMIT 0,5;
第二页:select * from tb_user LIMIT 5,5;
LIMIT第一个参数为"(页数-1)*每页显示记录数"(从0开始找5条数据)、第二个参数为"每页显示记录数"
select * from tb_user LIMIT "+(page-1)*pagesize+","+pagesize+";

3.Oracle数据库分页
第一页:select * from(select rownum r,e.* from emp e where rownum<=5) where r>1;
第二页:select * from(select rownum r,e.* from emp e where rownum<=10) where r>5;
select * from(select rownum r,e.* from(select * from emp order by time desc) e where rownum<= pageSize*page) where r>pageSize*(page-1);
select * from (select rownum r,e.* from (select *  from emp order by empno desc) e where rownum<=5)
where r>0;
select * from (select 行号 r,t.* from (根据time倒排序的所有信息)t where rownum <=页的大小*第几页) where r> (页的大小* (第几页-1));
其中rownum是行号, pagesize是传入的每页的大小 就是每页多少行 page 是传入的第几页 也就是你想显示第几页.

4.Hibernate分页(setFirstResult起初值从0开始)
从索引位置3开始查找6条数据
Query query = session.createQuery("from User");
query.setFirstResult(3);
query.setMaxResult(6);

5.QBC分页

从索引位置3开始查找6条数据

Criteria criteria= session.createCriteria ("User.class");

criteria.setFirstResult(3);
criteria.setMaxResult(6);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值