oracle中的sql分页简单上路

在我们的开发中难免与sql分页打交道,这就迫使我们就得学会如何分页,接下来我就我个人所学知识对oracle语句进行简单的剖析。

1,首先,我们查询所有的数据

oracle中的sql分页简单上路_第1张图片

2,用oracle中的rownum查询出所有的结果集,由于rownum并没有大于或等于,只有小于或等于号,所有现在所做的就是获取行号,由行号加结果集取中间值

select *from emp where rownum<=10;

oracle中的sql分页简单上路_第2张图片

3,通过别名,加rownum查询出所有数据加行号,

oracle中的sql分页简单上路_第3张图片

4,拿到了行号就简单多了,吧查询所有的sql数据在吧他放到select *from 的后面去,并取一个别名t

oracle中的sql分页简单上路_第4张图片

5,实现分页

oracle中的sql分页简单上路_第5张图片

现在在数据库中进行了完美的分页。

注:rownum<=10;就是指最后的索引;t.r>5指首记录索引。

这就可以引发一些公式:firstIndex指首记录索引,pageno指当前页号,pagesize指当前页面大小。lastindex,当前页面最后的索引值

firstIndex=(pageno-1)*pagesize+1;

lastindex=firstindex+pagesize-1;

在java代码块中我们就可以这样写

package com.shandian.bean;

import java.util.List;

public class Page {
	// 首索引;
	private int firstIndex;
	private int lastIndex;
	private int pageno = 1;// 当前页号;
	private int pagesize = 5;// 页面大小;
	private int count;// 总记录数
	private int pagecount;// 页面大小
	private List list;

	public List getList() {
		return list;
	}

	public void setList(List list) {
		this.list = list;
	}

	public int getFirstIndex() {
		return firstIndex = (this.getPageno() - 1) * this.getPagesize() + 1;
	}

	public int getPageno() {
		return pageno;
	}

	public void setPageno(int pageno) {
		this.pageno = pageno;
	}

	public int getPagesize() {
		return pagesize;
	}

	public void setPagesize(int pagesize) {
		this.pagesize = pagesize;
	}

	public int getCount() {
		return count;
	}

	public void setCount(int count) {
		this.count = count;
	}

	public int getPagecount() {
		return pagecount = (this.getCount() - 1) / this.getPagesize() + 1;
	}

	public int getLastIndex() {
		return lastIndex = getFirstIndex() + this.getPagesize() - 1;
	}

}
 这就是分页的简单实用,后期我会发一个mybatis+springmvc+ajax+分页的项目,大家到时可以下载。

你可能感兴趣的:(oracle)