在我们的开发中难免与sql分页打交道,这就迫使我们就得学会如何分页,接下来我就我个人所学知识对oracle语句进行简单的剖析。
1,首先,我们查询所有的数据
2,用oracle中的rownum查询出所有的结果集,由于rownum并没有大于或等于,只有小于或等于号,所有现在所做的就是获取行号,由行号加结果集取中间值
select *from emp where rownum<=10;
3,通过别名,加rownum查询出所有数据加行号,
4,拿到了行号就简单多了,吧查询所有的sql数据在吧他放到select *from 的后面去,并取一个别名t
5,实现分页
扫描二维码关注公众号,回复:
2476662 查看本文章
现在在数据库中进行了完美的分页。
注: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<T> {
// 首索引;
private int firstIndex;
private int lastIndex;
private int pageno = 1;// 当前页号;
private int pagesize = 5;// 页面大小;
private int count;// 总记录数
private int pagecount;// 页面大小
private List<T> list;
public List<T> getList() {
return list;
}
public void setList(List<T> 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+分页的项目,大家到时可以下载。