<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    草窩兒
    我的地盤兒
    posts - 4,  comments - 13,  trackbacks - 0

    package com.kingstargroup.eqa.pageshow.action;


    import java.util.List;

    import org.apache.struts.action.Action;
    import org.springframework.jdbc.core.JdbcTemplate;

    import com.kingstargroup.framework.dao.Page;

    public abstract class AbstractPageShowAction extends Action {
     protected final int defaultPageSize = 50;
     
     private JdbcTemplate jdbcTemplate;

     public JdbcTemplate getJdbcTemplate() {
      return jdbcTemplate;
     }

     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
      this.jdbcTemplate = jdbcTemplate;
     }
     
     protected Page queryForPage(String sql, int pageNo, int pageCount, Object[] args) {
      String strSql = "";
      int startNo = Page.getStartOfPage(pageNo, pageCount);
      int endNo = startNo + pageCount;
      int argsCount = args.length;
      int totleCount = queryForCount(sql, args);
      Object[] new_args;
      
      if(startNo==0){
       strSql = "select * from (" + sql + ") where rownum <= ?";
       new_args = new Object[argsCount+1];
      }
      else{
       strSql = "select * from (select row_.*,rownum rownum_ from (" + sql + ") row_ where rownum <= ?) where rownum_>?";
       new_args = new Object[argsCount+2];
       new_args[argsCount + 1] = new Integer(startNo);
      }
      for(int i=0; i<argsCount; i++){
       new_args[i] =args[i];
      }
      new_args[argsCount] = new Integer(endNo);
      List list = jdbcTemplate.queryForList(strSql, new_args);   
      
      return new Page(startNo, totleCount, pageCount, list);
     }
     
     private int queryForCount(String sql, Object[] args){
      String strSql = "select count(rowid) from ( " + sql +  ")";
      return jdbcTemplate.queryForInt(strSql, args);
     }

    }





    package com.kingstargroup.framework.dao;

    import java.util.ArrayList;
    import java.util.Collection;

    import com.kingstargroup.framework.dao.hibernate.BaseHibernateDao;

    /**
     * 分頁對象. 包含數(shù)據(jù)及分頁信息.
     *
     * @author ajax
     */
    public class Page implements java.io.Serializable {
     /**
      * 當(dāng)前頁第一條數(shù)據(jù)的位置,從0開始
      */
     private int start;

     /**
      * 每頁的記錄數(shù)
      */
     private int pageSize = BaseHibernateDao.DEFAULT_PAGE_SIZE;

     /**
      * 當(dāng)前頁中存放的記錄
      */
     private Object data;

     /**
      * 總記錄數(shù)
      */
     private int totalCount;

     private int size;

     /**
      * 構(gòu)造方法,只構(gòu)造空頁
      */
     public Page() {
      this(0, 0, BaseHibernateDao.DEFAULT_PAGE_SIZE, new ArrayList());
     }

     /**
      * 默認(rèn)構(gòu)造方法
      *
      * @param start
      *            本頁數(shù)據(jù)在數(shù)據(jù)庫中的起始位置
      * @param totalSize
      *            數(shù)據(jù)庫中總記錄條數(shù)
      * @param pageSize
      *            本頁容量
      * @param data
      *            本頁包含的數(shù)據(jù)
      */
     public Page(int start, int totalSize, int pageSize, Object data) {
      this.pageSize = pageSize;
      this.start = start;
      this.totalCount = totalSize;
      this.data = data;
      if (data instanceof Collection)
       this.size = ((Collection) data).size();
      else
       this.size = ((Object[]) data).length;
     }

     /**
      * 取數(shù)據(jù)庫中包含的總記錄數(shù)
      */
     public int getTotalSize() {
      return this.totalCount;
     }

     /**
      * 取總頁數(shù)
      */
     public int getTotalPageCount() {
      if (totalCount % pageSize == 0)
       return totalCount / pageSize;
      else
       return totalCount / pageSize + 1;
     }

     /**
      * 取每頁數(shù)據(jù)容量
      */
     public int getPageSize() {
      return pageSize;
     }

     /**
      * 當(dāng)前頁中的記錄
      */
     public Object getResult() {
      return data;
     }

     /**
      * 取當(dāng)前頁碼,頁碼從1開始
      */
     public int getCurrentPageNo() {
      return (start / pageSize) + 1;
     }

     /**
      * 是否有下一頁
      */
     public boolean hasNextPage() {
      return (this.getCurrentPageNo() < this.getTotalPageCount() - 1);
     }

     /**
      * 是否有上一頁
      */
     public boolean hasPreviousPage() {
      return (this.getCurrentPageNo() > 1);
     }

     /**
      * 獲取任一頁第一條數(shù)據(jù)的位置,每頁條數(shù)使用默認(rèn)值
      */
     protected static int getStartOfPage(int pageNo) {
      return getStartOfPage(pageNo, BaseHibernateDao.DEFAULT_PAGE_SIZE);
     }

     /**
      * 獲取任一頁第一條數(shù)據(jù)的位置,startIndex從0開始
      */
     public static int getStartOfPage(int pageNo, int pageSize) {
      return (pageNo - 1) * pageSize;
     }

     public int getSize() {
      return this.size;
     }

    }

    posted on 2007-04-04 13:16 芨芨草 閱讀(2183) 評論(1)  編輯  收藏 所屬分類: JAVA

    FeedBack:
    # re: JDBC分頁(Oracle 10g)
    2007-05-17 10:11 | 我心依舊
    很不錯(cuò).JDBC運(yùn)行效率高...  回復(fù)  更多評論
      

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


    網(wǎng)站導(dǎo)航:
     
    想讓草兒飛上天 ...

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    Hibernate

    Oracle

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品99久久免费观看| 国产亚洲真人做受在线观看| 色www免费视频| 亚洲色欲久久久久综合网| 一级毛片在线免费看| 亚洲欧美日韩综合俺去了| 中文字幕不卡亚洲 | 久久www免费人成看国产片| 久久亚洲美女精品国产精品| h视频在线观看免费| 久久综合亚洲色一区二区三区| 在线中文高清资源免费观看| 亚洲 欧洲 自拍 另类 校园| 永久亚洲成a人片777777| 精品熟女少妇AV免费观看| a级特黄毛片免费观看| 亚洲砖码砖专无区2023| 亚洲av日韩av高潮潮喷无码| 国产成人无码免费视频97 | 成人免费ā片在线观看| 亚洲精品亚洲人成在线观看| 成人黄动漫画免费网站视频 | 亚洲日韩国产二区无码| 久久亚洲精品成人| 亚洲国产人成中文幕一级二级| 免费黄色网址网站| 国产色爽免费无码视频| 老司机福利在线免费观看| 亚洲中字慕日产2021| 青青草免费在线视频| 免费一级毛片在线播放视频| 九九免费久久这里有精品23| 亚洲熟妇丰满xxxxx| 亚洲国产精品综合福利专区| 亚洲av最新在线网址| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 一区二区三区免费电影| 亚洲av永久中文无码精品| 亚洲欧洲日产国产最新| 久久久久亚洲AV片无码| 亚洲精品无码不卡在线播放HE|