用ORACLE实现简单分页
现在这儿所说的分页是简单分页,比如:每页显示20条,但读21条,判断21条存在,则显示下一页,只有一个查看下一页。包括根据名称搜索
我的解决方案是:
SELECT * FROM
(SELECT A.*, rownum r
FROM
(select student_no,student_name
from student
where type= 'WUBAN'
<isNotEmpty prepend="AND" property="student_name">
remark like '%'||#student_name#||'%'
</isNotEmpty>
order by student_no asc
) A
<![CDATA[ WHERE rownum <= #end#]]>
) B
<![CDATA[ WHERE r > #start#]]>
start:是开始记录
end:是结束记录
(2)Start,end值计算,我是根据页数算的。具体如下:
//前台请求的页数
String page=servletRequest.getParameter("page");
int start=0;//开始行数
int end=0;//结束行数
int nowPage=1;// 保存当前页数,默认为1
int pageShowNum=20;//每页显示20条
int pageReadNum=21;//每页读21条
if(StringUtil.isBlank(page) || page==null){
}else if("1".equals(page)){//首页
}else{
try{
nowPage=Integer.parseInt(page);
}catch(Exception ep){
ep.printStackTrace();
nowPage=1;
}
}
start=(nowPage-1)*pageShowNum;
end=start+pageReadNum;