我的Blog我做主^_^

          走向一條通往JAVA的不歸路...

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            64 隨筆 :: 68 文章 :: 77 評論 :: 0 Trackbacks

          =======分頁BEAN========

          import java.util.List;

          /**
           * ibatis分頁Bean
           * @author Administrator
           *
           */
          public class PageUtil {

           private int curPage = 0; //當前頁
           private int pageSize = 0; //每頁多少行
           private int endSize ; //用于not in(select top endSize id)不在多少行內
           private int totalRow ; //共多少行
           private int totalPage ; //共多少頁
           
           public int getCurPage() {
            return curPage;
           }
           public void setCurPage(int curPage) {
            
            int temp = pageSize * (curPage-1);
            this.setEndSize(temp);
            this.curPage = curPage;
           }
           public int getEndSize() {
            return endSize;
           }
           public void setEndSize(int endSize) {
            this.endSize = endSize;
           }
           public int getPageSize() {
            return pageSize;
           }
           public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
           }
           public int getTotalRow() {
            return totalRow;
           }
           public void setTotalRow(int totalRow) {
            
            totalPage = totalRow/pageSize;
            if(totalRow%pageSize > 0)
             totalPage = totalPage + 1;
            
            this.totalRow = totalRow;
           }
           public int getTotalPage(){
            
            return this.totalPage;
           }
           public String getToolsMenu() {
                  StringBuffer str = new StringBuffer("");
                  int next, prev;
                  prev = curPage - 1;
                  next = curPage + 1;

                  if (curPage > 1) {
                      str.append(
                          "<a href=\"#\" onclick=\"document.forms(0).pages.value=1;document.forms(0).submit();\">首頁</a>&nbsp;");
                  } else {
                      str.append("<a href=\"#\">首頁</a>&nbsp;");
                  }
                  if (curPage > 1) {
                      str.append(
                          "<a href=\"#\" onclick='document.forms(0).pages.value=" +prev + ";document.forms(0).submit();'>上頁</a>&nbsp;");
                  } else {
                      str.append("<a href=\"#\">上頁</a>&nbsp;");
                  }
                  if (curPage < totalPage) {
                      str.append(
                          "<a href=\"#\" onclick='document.forms(0).pages.value=" +next + ";document.forms(0).submit();'>下頁</a>&nbsp;");
                  } else {
                      str.append("<a href=\"#\" >下頁</a>&nbsp;");
                  }
                  if (totalPage > 1 && curPage != totalPage) {
                      str.append(
                          "<a href=\"#\"  onclick='document.forms(0).pages.value=" +totalPage + ";document.forms(0).submit();'>末頁</a>&nbsp;&nbsp;");
                  } else {
                      str.append("<a href=\"#\" >末頁</a>&nbsp;&nbsp;");
                  }
                  str.append(" 共" + totalRow + "條記錄");
                  str.append("  每頁<SELECT size=1 name=pagesize onchange='this.form.pages.value=1;this.form.pageSize.value=this.value;this.form.submit();'>");

                  if (pageSize == 3) {
                      str.append("<OPTION value=3 selected>3</OPTION>");
                  } else {
                      str.append("<OPTION value=3>3</OPTION>");
                  }

                  if (pageSize == 10) {
                      str.append("<OPTION value=10 selected>10</OPTION>");
                  } else {
                      str.append("<OPTION value=10>10</OPTION>");
                  }
                  if (pageSize == 20) {
                      str.append("<OPTION value=20 selected>20</OPTION>");
                  } else {
                      str.append("<OPTION value=20>20</OPTION>");
                  }
                  if (pageSize == 50) {
                      str.append("<OPTION value=50 selected>50</OPTION>");
                  } else {
                      str.append("<OPTION value=50>50</OPTION>");
                  }
                  if (pageSize == 100) {
                      str.append("<OPTION value=100 selected>100</OPTION>");
                  } else {
                      str.append("<OPTION value=100>100</OPTION>");
                  }
                  str.append("</SELECT>");
                  str.append("條 分" + pageSize + "頁顯示 轉到");
                  str.append("<SELECT size=1 name=Pagelist onchange='this.form.pages.value=this.value;this.form.submit();'>");
                  for (int i = 1; i < totalPage + 1; i++) {
                      if (i == curPage) {
                          str.append("<OPTION value=" + i + " selected>" + i +
                                     "</OPTION>");
                      } else {
                          str.append("<OPTION value=" + i + ">" + i + "</OPTION>");
                      }
                  }
                  str.append("</SELECT>頁");
                  str.append("<INPUT type=hidden  value=" + curPage + " name=\"pages\" > ");
                  str.append("<INPUT type=hidden  value=" + pageSize +
                             " name=\"pageSize\"> ");
                  return str.toString();
              }

          }

          ========配置文件=======
          <typeAlias alias="leaveBill" type="com.luke.wz.kf.bean.LeaveBill"/>
           <typeAlias alias="page" type="com.luke.wz.kf.bean.PageUtil"/>
          <select id="getWaitingLeaveBillByPage" resultClass="leaveBill" parameterClass="page">
            select
            <dynamic prepend="">
             <isNotEqual compareValue="0" property="pageSize" prepend="">
              top $pageSize$
             </isNotEqual>
             * from leavebill
             <isNotEqual prepend="where" compareValue="0" property="pageSize">
              id not in (select top $endSize$ id from leavebill) and state != '已歸檔' and state != '已完成'
             </isNotEqual>
             <isEqual prepend="where" compareValue="0" property="pageSize">
              state != '已歸檔' and state != '已完成'
             </isEqual>
            </dynamic>
           </select>

          =======DAO method========

          public List getWaitingLeaveBill(PageUtil page){
            
            List list = null;
            try {
             
             list = sqlMapClientTemplate.queryForList("getWaitingLeaveBillByPage",page);
            } catch (Exception e) {

             logger.error(e.getMessage());
            }
            return list;
           }


          =========具體操作=======
          public ModelAndView toWaitingLeaveBillList(HttpServletRequest request, HttpServletResponse response){
            
            PageUtil page = new PageUtil();
            java.util.List list = leaveBillDao.getWaitingLeaveBill(page);
            int temp = list.size();
            if(null != request.getParameter("pageSize") && !"".equals(request.getParameter("pageSize"))){
             page.setPageSize(Integer.parseInt(request.getParameter("pageSize")));
            }else{
             
             page.setPageSize(3);
            }
            page.setTotalRow(temp); 
            if(null != request.getParameter("pages") && !"".equals(request.getParameter("pages"))){
             page.setCurPage(Integer.parseInt(request.getParameter("pages")));
            }else{
             page.setCurPage(1);
            }
            request.setAttribute("menu",page.getToolsMenu());
            request.setAttribute("waitinglist",leaveBillDao.getWaitingLeaveBill(page));
            return new ModelAndView(WAITINGLIST);
           }

          這是針對MS SQL的,針對MYSQL或其它數據庫的情況,改動一下配置文件即可。



          posted on 2007-10-30 14:07 java_蟈蟈 閱讀(4167) 評論(7)  編輯  收藏 所屬分類: ibatis

          評論

          # re: ibatis 分頁 2008-02-25 15:35 ch_w
          朋友,你這個Sybase 就不行了.低版本的Sybase甚至連top都不支持,后期版本支持top,但也不支持在子句中使用top  回復  更多評論
            

          # re: ibatis 分頁 2008-02-26 14:14 java_蟈蟈
          @ch_w
          這個并不是一成不變的,視情況定嗎,我這個只是針對MS SQL的,你可以自己改嗎

            回復  更多評論
            

          # re: ibatis 分頁 2008-06-10 16:15 pretender
          是不是耦合性太高了!!  回復  更多評論
            

          # re: ibatis 分頁[未登錄] 2008-07-14 14:32 chen
          類職責不清晰,加油  回復  更多評論
            

          # re: ibatis 分頁[未登錄] 2008-07-15 08:25 java_蟈蟈
          @chen

          感謝你的到來及建意,謝謝  回復  更多評論
            

          # re: ibatis 分頁[未登錄] 2008-08-13 16:18 蟲子
          Sybase 確實不行,剛才測試了一下!不支持在子句中使用top   回復  更多評論
            

          # re: ibatis 分頁 2010-03-12 11:15 Fei.Wang
          剛想著自已寫一個這樣的東東. 正好搜出來了, 大力頂一下!!!  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 皮山县| 天长市| 鹤壁市| 井研县| 隆尧县| 五河县| 襄樊市| 新邵县| 施秉县| 天峨县| 白河县| 巩义市| 苍山县| 大城县| 镇安县| 新建县| 芦溪县| 康马县| 德化县| 布尔津县| 广安市| 东丰县| 江西省| 云龙县| 迁安市| 开封县| 九龙坡区| 武川县| 奉节县| 普安县| 吐鲁番市| 会同县| 平南县| 紫金县| 昭觉县| 邵阳县| 肇州县| 德令哈市| 临夏县| 嘉禾县| 新沂市|