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

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

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

    posts - 14, comments - 15, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    java分頁代碼

    Posted on 2008-09-27 11:03 析木 閱讀(13306) 評論(14)  編輯  收藏

    現(xiàn)在開始編寫 Service 層代碼:

    com.game.products.services.iface 包中新建 ProductsService 接口,代碼如下:

    package  com.game.products.services.iface;

     
    import  java.util.List;

     
    import  com.game.products.model.Products;

     
    public   interface  ProductsService   {
         
    void  addProduct(Products pd); // 添加記錄 
          void  deleteProduct(Products pd); // 刪除記錄     
         List getProducts(); // 獲得所有記錄 
          int  getRows();; // 獲得總行數(shù) 
         List getProducts( int  pageSize,  int  startRow) ; // 獲得一段記錄 
         Products getProduct(String gameId); // 根據(jù)ID獲得記錄 
         String getMaxID(); // 獲得最大ID值 
          void  updateProductd(Products pd); // 修改記錄 
         List queryProducts(String fieldname,String value); // 根據(jù)條件查詢的所有記錄 
          int  getRows(String fieldname,String value); // 獲得總行數(shù) 
         List queryProducts(String fieldname,String value, int  pageSize,  int  startRow); // 根據(jù)條件查詢的一段記錄 
     }
    com.game.products.services 包中新建 ProductsServiceImp 類,這個類實現(xiàn)了 ProductsService 接口,代碼如下:
    package  com.game.products.services;

     
    import  java.util.List;

     
    import  com.game.products.dao.iface.ProductsDao;
     
    import  com.game.products.model.Products;
     
    import  com.game.products.services.iface.ProductsService;

     
    public   class  ProductsServiceImp  implements  ProductsService  {
         
    private  ProductsDao productsDao;
        
         
    public  ProductsServiceImp()  {} 
        
         
    /** */ /** 
         * 函數(shù)說明:添加信息
         * 參數(shù)說明:對象 
         * 返回值:
          
    */
     
          
    public   void  addProduct(Products pd)   {
            productsDao.addProduct(pd);
        }
     
     
          
    /** */ /** 
         * 函數(shù)說明:刪除信息
         * 參數(shù)說明: 對象
         * 返回值:
          
    */
     
          
    public   void  deleteProduct(Products pd)   {
            productsDao.deleteProduct(pd);
        }
     
     
          
    /** */ /** 
         * 函數(shù)說明:獲得所有的信息
         * 參數(shù)說明: 
         * 返回值:信息的集合
          
    */
     
          
    public  List getProducts()   {
             
    return  productsDao.getProducts();
        }
     
        
         
    /** */ /** 
         * 函數(shù)說明:獲得總行數(shù)
         * 參數(shù)說明: 
         * 返回值:總行數(shù)
          
    */
     
          
    public   int  getRows()   {
             
    return  productsDao.getRows();
        }
     
        
         
    /** */ /** 
         * 函數(shù)說明:獲得一段信息
         * 參數(shù)說明: 
         * 返回值:信息的集合
          
    */
     
          
    public  List getProducts( int  pageSize,  int  startRow)   {
             
    return  productsDao.getProducts(pageSize, startRow);
        }
     
     
          
    /** */ /** 
         * 函數(shù)說明:獲得一條的信息
         * 參數(shù)說明: ID
         * 返回值:對象
          
    */
     
          
    public  Products getProduct(String gameId)   {
             
    return  productsDao.getProduct(gameId);
        }
     
     
          
    /** */ /** 
         * 函數(shù)說明:獲得最大ID
         * 參數(shù)說明: 
         * 返回值:最大ID
          
    */
     
          
    public  String getMaxID()   {
             
    return  productsDao.getMaxID();
        }
     
     
          
    /** */ /** 
         * 函數(shù)說明:修改信息
         * 參數(shù)說明: 對象
         * 返回值:
          
    */
     
          
    public   void  updateProductd(Products pd)   {
            productsDao.updateProductd(pd);
        }
     
     
          
    /** */ /** 
         * 函數(shù)說明:查詢信息
         * 參數(shù)說明: 集合
         * 返回值:
          
    */
     
          
    public  List queryProducts(String fieldname,String value)   {
             
    return  productsDao.queryProducts(fieldname, value);
        }
     
        
         
    /** */ /** 
         * 函數(shù)說明:獲得總行數(shù)
         * 參數(shù)說明: 
         * 返回值:總行數(shù)
          
    */
     
          
    public   int  getRows(String fieldname,String value)   {
             
    return  productsDao.getRows(fieldname, value);
        }
     
        
         
    /** */ /** 
         * 函數(shù)說明:查詢一段信息
         * 參數(shù)說明: 集合
         * 返回值:
          
    */
     
          
    public  List queryProducts(String fieldname,String value, int  pageSize,  int  startRow)   {
             
    return  productsDao.queryProducts(fieldname, value,pageSize,startRow);
        }
     
     
          
    public  ProductsDao getProductsDao()   {
             
    return  productsDao;
        }
     
     
          
    public   void  setProductsDao(ProductsDao productsDao)   {
             
    this .productsDao  =  productsDao;
        }
     
     
    }

    基本的業(yè)務(wù)層代碼就這些了。因為還有分頁的業(yè)務(wù),所以接下來編寫分頁的代碼。


    分頁是個公共的類,所以放在
    com.game.commons 中。

    Pager 類,封裝了分頁需要的屬性,代碼如下:

    package  com.game.commons;

     
    import  java.math. * ;

     
    public   class  Pager   {
         
    private   int  totalRows;  // 總行數(shù) 
          private   int  pageSize  =   30 ;  // 每頁顯示的行數(shù) 
          private   int  currentPage;  // 當前頁號 
          private   int  totalPages;  // 總頁數(shù) 
          private   int  startRow;  // 當前頁在數(shù)據(jù)庫中的起始行 
         
         
    public  Pager()   {
        }
     
        
         
    public  Pager( int  _totalRows)   {
            totalRows  
    =  _totalRows;
            totalPages 
    = totalRows / pageSize;
             
    int  mod = totalRows % pageSize;
             
    if (mod > 0 )  {
                totalPages 
    ++ ;
            }
     
            currentPage  
    =   1 ;
            startRow  
    =   0 ;
        }
     
        
         
    public   int  getStartRow()   {
             
    return  startRow;
        }
     
          
    public   int  getTotalPages()   {
             
    return  totalPages;
        }
     
          
    public   int  getCurrentPage()   {
             
    return  currentPage;
        }
     
          
    public   int  getPageSize()   {
             
    return  pageSize;
        }
     
          
    public   void  setTotalRows( int  totalRows)   {
             
    this .totalRows  =  totalRows;
        }
     
          
    public   void  setStartRow( int  startRow)   {
             
    this .startRow  =  startRow;
        }
     
          
    public   void  setTotalPages( int  totalPages)   {
             
    this .totalPages  =  totalPages;
        }
     
          
    public   void  setCurrentPage( int  currentPage)   {
             
    this .currentPage  =  currentPage;
        }
     
          
    public   void  setPageSize( int  pageSize)   {
             
    this .pageSize  =  pageSize;
        }
     
          
    public   int  getTotalRows()   {
             
    return  totalRows;
        }
     
          
    public   void  first()   {
            currentPage  
    =   1 ;
            startRow  
    =   0 ;
        }
     
          
    public   void  previous()   {
             
    if  (currentPage  ==   1 )   {
                 
    return ;
            }
     
            currentPage 
    -- ;
            startRow  
    =  (currentPage  -   1 )  *  pageSize;
        }
     
          
    public   void  next()   {
             
    if  (currentPage  <  totalPages)   {
                currentPage 
    ++ ;
            }
     
            startRow  
    =  (currentPage  -   1 )  *  pageSize;
        }
     
          
    public   void  last()   {
            currentPage  
    =  totalPages;
            startRow  
    =  (currentPage  -   1 )  *  pageSize;
        }
     
          
    public   void  refresh( int  _currentPage)   {
            currentPage  
    =  _currentPage;
             
    if  (currentPage  >  totalPages)   {
                last();
            }
     
        }
     
    }
    PagerService 類,主要有個 getPager 方法返回 Pager 類。代碼如下:
     package  com.game.commons;

     
    public   class  PagerService   {
         
    public  Pager getPager(String currentPage,String pagerMethod, int  totalRows)   {
             
    //     定義pager對象,用于傳到頁面 
             Pager pager  =   new  Pager(totalRows);
             
    //     如果當前頁號為空,表示為首次查詢該頁
             
    //     如果不為空,則刷新pager對象,輸入當前頁號等信息 
               if  (currentPage  !=   null )   {
                pager.refresh(Integer.parseInt(currentPage));
            }
     
             
    //     獲取當前執(zhí)行的方法,首頁,前一頁,后一頁,尾頁。 
               if  (pagerMethod  !=   null )   {
                 
    if  (pagerMethod.equals( " first " ))   {
                    pager.first();
                }
       else   if  (pagerMethod.equals( " previous " ))   {
                    pager.previous();
                }
       else   if  (pagerMethod.equals( " next " ))   {
                    pager.next();
                }
       else   if  (pagerMethod.equals( " last " ))   {
                    pager.last();
                }
     
            }
     
             
    return  pager;
        }
     
    }

    這個分頁方法比較簡單,而且功能也齊全,許多頁面級的開源 table 中分頁很多也是基于這個原理,所以理解了這個分頁,對其他各種分頁技術(shù)的理解也就迎刃而解了。

    服務(wù)層的代碼就這些了,接下來就可以寫 spring 的配置文件來用 spring 管理這些 Dao Service 了。


    評論

    # re: java分頁代碼  回復  更多評論   

    2009-05-19 00:12 by 求知如采金
    你好,我是JAVA初學者,看了你的分頁很有幫助,在此說聲謝謝。

    但是我有個很弱智的問題,我想看看DAO類的代碼,比如總行數(shù)怎么查出來,怎么賦值到bean

    # re: java分頁代碼  回復  更多評論   

    2009-05-19 18:37 by 魏久銀
    @求知如采金
    select count(*) fom TABLE where.....

    # re: java分頁代碼  回復  更多評論   

    2009-06-18 13:53 by 毛蟲
    你要寫就寫完整 可以運行啊!把配置文件寫好啊!!
    我也好看嘛 呵呵 我是初學者 很多都不會啊

    # re: java分頁代碼[未登錄]  回復  更多評論   

    2009-07-08 14:05 by cc
    你怎么能這樣呢,初學者有理了?氣氛

    # re: java分頁代碼  回復  更多評論   

    2009-08-13 20:40 by SexBro
    需要DAO!!!

    # re: java分頁代碼  回復  更多評論   

    2009-12-16 17:29 by 程瑞
    不錯很好可以這樣想有腦 goooooooooooooooooooooooood

    # re: java分頁代碼  回復  更多評論   

    2010-02-08 17:06 by HTPM1
    樓主的分頁代碼確實很好。。不過我還是想看一下你的DAO。。查詢SQL怎么寫的。。謝謝能發(fā)布一下嗎?

    # re: java分頁代碼[未登錄]  回復  更多評論   

    2010-08-03 15:41 by ann
    在操作上下頁的時候,能保證操作的是同一個list嗎?

    # re: java分頁代碼  回復  更多評論   

    2010-09-17 09:10 by 就阿va
    怎么和我們頭一樣 把底層的 都封裝了 不讓看阿 郁悶

    # re: java分頁代碼  回復  更多評論   

    2012-01-17 15:14 by S771880049
    至少給出表的結(jié)構(gòu)也好啊

    # re: java分頁代碼  回復  更多評論   

    2012-08-24 16:48 by 游客
    看了半天才發(fā)現(xiàn)很不完整。
    唉!

    # re: java分頁代碼  回復  更多評論   

    2012-11-04 23:46 by jayhom
    寫的很好,原理搞懂了。上面那個回復的@毛蟲,你學習還理直氣壯地,有你這樣的么?

    # re: java分頁代碼  回復  更多評論   

    2012-12-12 15:43 by 郭濛濛
    思路很清晰,謝謝分享!

    # re: java分頁代碼  回復  更多評論   

    2014-05-17 00:33 by zuidaima
    java分頁代碼代碼下載:http://www.zuidaima.com/share/search.htm?key=java%E5%88%86%E9%A1%B5

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


    網(wǎng)站導航:
     
    我要啦免费统计
    主站蜘蛛池模板: 日韩精品无码免费专区午夜不卡| 亚洲另类自拍丝袜第1页| 亚洲日韩人妻第一页| 国产一区二区免费在线| 免费看片免费播放| 国产成人免费一区二区三区| 国产精品二区三区免费播放心| 色吊丝永久在线观看最新免费| 国产又大又粗又硬又长免费| 亚洲国产成人精品91久久久| 久久久久一级精品亚洲国产成人综合AV区 | 日本亚洲免费无线码 | 丝袜熟女国偷自产中文字幕亚洲| 亚洲一级片免费看| 亚洲线精品一区二区三区影音先锋| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 亚洲va在线va天堂va手机| 亚洲一区二区三区高清视频| 亚洲 日韩经典 中文字幕| 亚洲国产精品18久久久久久| 美女视频黄频a免费大全视频| 九九久久国产精品免费热6| 中文日本免费高清| 久久99青青精品免费观看| 69xx免费观看视频| 日本高清免费不卡在线| 亚洲国产一区视频| 亚洲Av无码专区国产乱码DVD| 亚洲成无码人在线观看| 亚洲国产美女精品久久久| 午夜成人无码福利免费视频| 国产日韩AV免费无码一区二区 | 91在线免费观看| 91福利免费体验区观看区| 97在线观免费视频观看| 免费一级毛片在线播放不收费 | 成人免费无码大片a毛片软件| 亚洲成年看片在线观看| 亚洲va无码专区国产乱码| 国产色在线|亚洲| 无套内射无矿码免费看黄|