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条的主要内容,如果未能解决你的问题,请参考以下文章
java中数据库中实现分页的sql语句要求每页十条要查询的是第二页