用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;

posted @ 2016-06-24 18:38  IT一族  阅读(187)  评论(0编辑  收藏  举报