oracle分页查询语句怎么写每页查询10条

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle分页查询语句怎么写每页查询10条相关的知识,希望对你有一定的参考价值。

比如我有22条数据到第三页只显示2条

参考技术A 1、通常的分页写法,也是第一种分页方法,类似如下方式:
select * from (
select a.*, rownum rn from
(select * from test a order by object_name) a

where rownum <=1000)
where rn > 990;

这种方式,是对表进行排序翻页,比较常见,但是,第一页与第1000页的性能差异还是挺明显的。

2、第二种的分页写法是对索引进行翻页操作,然后根据rowid 去表中取数据。 这种方式,第一页与第1000页性能相差不大。

以下语句虽然使用HINT指定使用索引, 但是仍然没有生效。
select b.* from (
select * from (

select a.*, rownum rn from

(select /*+ index(a ix_object_name) */ rowid rid from test a order by object_name) a

where rownum <=20)
where rn > 10) a, test b

where a.rid = b.rowid;本回答被提问者采纳

分页查询知识点

1.在mysql里面使用分页查询sql语句:

使用limit关键字

select * from user limit 0,3;

limit关键字后面有两个参数,第一个参数为开始位置,第二个参数为每页显示记录数

2.分页相关属性

2.1当前页

2.2每页显示记录数

2.3总记录数

2.4总页数

  总记录数除以每页显示记录数

  比如10条记录,每页显示5条,有2页

  比如10条记录,每页显示7条,有2

 

  总记录数除以每页显示记录数,如果能够整除,结果是相除结果.如果不能整除,结果是相除的结果+1.

2.5开始位置

  计算公式   (当前页-1*每页显示记录数 

    当前页      开始位置    每页记录数

      1            0             3

      2            3             3

      3            6             3

 

 代码:

domain:

public class PageBean {
    // 每页显示记录数
    private Integer pageSize;
    // 当前页
    private Integer currentPage;
    // 总记录数
    private Long totalCount;
    // 总页数
    private Long totalPage;
    // 开始位置
    private Integer begin;
    // 每页数据的list集合
    private List<Customer> list;
}

service:

    public PageBean listpage(int currentPage, String custName, int pageSize2) {
        // TODO Auto-generated method stub
        PageBean pageBean = new PageBean();
        pageBean.setCurrentPage(currentPage);
        //总数量
        Long totalCount = customerDAO.findCount(custName);
        pageBean.setTotalCount(totalCount);
        //每页预计显示数量
        int pageSize = pageSize2 ; 
        long totalPage = 0;

        if (totalCount%pageSize ==0) {
            //整除
            totalPage =(totalCount/pageSize);

            
        }else {
            //不整除
            totalPage =(totalCount/pageSize)+1;

        }
        pageBean.setTotalPage(totalPage);
        int begin = (int) ((currentPage-1)*pageSize);
        List<Customer> list = customerDAO.findAllPage(begin,pageSize,custName);
        pageBean.setList(list);
        
        return pageBean;
    }

dao:

    public Long findCount(String custName) {
        // TODO Auto-generated method stub
        List<Long> list = (List<Long>) hibernateTemplate.find("SELECT COUNT(*) FROM Customer WHERE custname LIKE ?","%"+custName+"%");
        System.err.println(list);
        if (list != null && list.size() != 0) {
            Long l = list.get(0);
            return l;
        }
        return 0L;
    }

    public List<Customer> findAllPage(int begin, int pageSize,String custName) {
        // TODO Auto-generated method stub
        DetachedCriteria criteria = DetachedCriteria.forClass(Customer.class);
        criteria.add(Restrictions.like("custName", "%"+custName+"%"));

        List<Customer> list = (List<Customer>) hibernateTemplate.findByCriteria(criteria, begin, pageSize);

        return list;
    }

 

以上是关于oracle分页查询语句怎么写每页查询10条的主要内容,如果未能解决你的问题,请参考以下文章

oracle数据库怎么实现分页,且每页三条数据

java中数据库中实现分页的sql语句要求每页十条要查询的是第二页

pageHelper分页查询oracle数据插入mysql时数据量变少

oracle怎么实现分页

Java中oracle分页查询01

mysql如何做分页查询?