zoukankan      html  css  js  c++  java
  • Java 分页通用

    1、定义分页模型:PageModel

    1. package com.common.page;  
    2.   
    3. import java.util.List;  
    4.   
    5. /** 
    6.  * 封装分页信息 
    7.  * @author Administrator 
    8.  * 
    9.  */  
    10. public class PageModel<E> {  
    11.   
    12.     //结果集  
    13.     private List<E> list;  
    14.       
    15.     //查询记录数  
    16.     private int totalRecords;  
    17.       
    18.     //每页多少条数据  
    19.     private int pageSize;  
    20.       
    21.     //第几页  
    22.     private int pageNo;  
    23.       
    24.     /** 
    25.      * 总页数 
    26.      * @return 
    27.      */  
    28.     public int getTotalPages() {  
    29.         return (totalRecords + pageSize - 1) / pageSize;  
    30.     }  
    31.       
    32.     /** 
    33.      * 取得首页 
    34.      * @return 
    35.      */  
    36.     public int getTopPageNo() {  
    37.         return 1;  
    38.     }  
    39.       
    40.     /** 
    41.      * 上一页 
    42.      * @return 
    43.      */  
    44.     public int getPreviousPageNo() {  
    45.         if (pageNo <= 1) {  
    46.             return 1;  
    47.         }  
    48.         return pageNo - 1;  
    49.     }  
    50.       
    51.     /** 
    52.      * 下一页 
    53.      * @return 
    54.      */  
    55.     public int getNextPageNo() {  
    56.         if (pageNo >= getBottomPageNo()) {  
    57.             return getBottomPageNo();  
    58.         }  
    59.         return pageNo + 1;    
    60.     }  
    61.       
    62.     /** 
    63.      * 取得尾页 
    64.      * @return 
    65.      */  
    66.     public int getBottomPageNo() {  
    67.         return getTotalPages();  
    68.     }  
    69.       
    70.     public List<E> getList() {  
    71.         return list;  
    72.     }  
    73.   
    74.     public void setList(List<E> list) {  
    75.         this.list = list;  
    76.     }  
    77.   
    78.     public int getTotalRecords() {  
    79.         return totalRecords;  
    80.     }  
    81.   
    82.     public void setTotalRecords(int totalRecords) {  
    83.         this.totalRecords = totalRecords;  
    84.     }  
    85.   
    86.     public int getPageSize() {  
    87.         return pageSize;  
    88.     }  
    89.   
    90.     public void setPageSize(int pageSize) {  
    91.         this.pageSize = pageSize;  
    92.     }  
    93.   
    94.     public int getPageNo() {  
    95.         return pageNo;  
    96.     }  
    97.   
    98.     public void setPageNo(int pageNo) {  
    99.         this.pageNo = pageNo;  
    100.     }  
    101. }  

    2、分页测试:在MySQL中建立admin表,里面有字段id、name、password

    3、简历Admin的实体bean类:

     
    1. package com.common.page;  
    2.   
    3. public class Admin {  
    4.     private int id;  
    5.     private String name;  
    6.     private String password;  
    7.     public int getId() {  
    8.         return id;  
    9.     }  
    10.     public void setId(int id) {  
    11.         this.id = id;  
    12.     }  
    13.     public String getName() {  
    14.         return name;  
    15.     }  
    16.     public void setName(String name) {  
    17.         this.name = name;  
    18.     }  
    19.     public String getPassword() {  
    20.         return password;  
    21.     }  
    22.     public void setPassword(String password) {  
    23.         this.password = password;  
    24.     }  
    25.   
    26. }  


    4、测试调用:


     
      1. package com.common.page;  
      2.   
      3. import java.sql.Connection;  
      4. import java.sql.PreparedStatement;  
      5. import java.sql.ResultSet;  
      6. import java.sql.SQLException;  
      7. import java.util.ArrayList;  
      8. import java.util.List;  
      9.   
      10. import com.common.db.DbUtil;  
      11.   
      12. public class Client {  
      13.     public static PageModel findAdmins(int pageNo,int pageSize){  
      14.         Connection conn=DbUtil.getConnection();  
      15.         String sql="select * from admin limit ?,?";  
      16.         PageModel pageModel=null;  
      17.         PreparedStatement pstm=null;  
      18.         ResultSet rs=null;  
      19.         Admin admin=null;  
      20.         List<Admin> list=new ArrayList<Admin>();  
      21.         try {  
      22.             pstm=conn.prepareStatement(sql);  
      23.             pstm.setInt(1, (pageNo-1)*pageSize);  
      24.             pstm.setInt(2, pageNo*pageSize);  
      25.             rs=pstm.executeQuery();;  
      26.             while(rs.next()){  
      27.                 admin=new Admin();  
      28.                 admin.setId(rs.getInt("a_id"));  
      29.                 admin.setName(rs.getString("a_name"));  
      30.                 admin.setPassword(rs.getString("a_pwd"));  
      31.                 list.add(admin);  
      32.             }  
      33.             ResultSet rs2=pstm.executeQuery("select count(*) from admin");  
      34.             int total=0;  
      35.             if(rs2.next()){  
      36.                 total=rs2.getInt(1);  
      37.             }  
      38.             pageModel=new PageModel();  
      39.             pageModel.setPageNo(pageNo);  
      40.             pageModel.setPageSize(pageSize);  
      41.             pageModel.setTotalRecords(total);  
      42.             pageModel.setList(list);  
      43.         } catch (SQLException e) {  
      44.             e.printStackTrace();  
      45.         }finally{  
      46.             DbUtil.close(conn);  
      47.             DbUtil.close(pstm);  
      48.             DbUtil.close(rs);  
      49.         }  
      50.         return pageModel;  
      51.     }  
      52.       
      53.     public static void main(String[] args) {  
      54.         PageModel pageModel=Client.findAdmins(2,4);  
      55.         List<Admin> list=pageModel.getList();  
      56.         for(Admin a:list){  
      57.             System.out.print("ID:"+a.getId()+",用户名:"+a.getName()+",密码:"+a.getPassword());  
      58.             System.out.println();  
      59.         }  
      60.         System.out.print("当前页:"+pageModel.getPageNo()+" ");  
      61.         System.out.print("共"+pageModel.getTotalPages()+"页  ");  
      62.         System.out.print("首页:"+pageModel.getTopPageNo()+" ");  
      63.         System.out.print("上一页:"+pageModel.getPreviousPageNo()+" ");  
      64.         System.out.print("下一页:"+pageModel.getNextPageNo()+" ");  
      65.         System.out.print("尾页:"+pageModel.getBottomPageNo()+" ");  
      66.         System.out.print("共"+pageModel.getTotalRecords()+"条记录");  
      67.         System.out.println();  
      68.     }  
      69.   
      70. }  
  • 相关阅读:
    UITableView加载显示更多内容
    UITableView  折叠效果
    40个GitHub上最受欢迎的iOS开源项目
    oc中的block使用心得
    iOS CGRectContainsPoint的用法
    ios NSComparator 三种枚举类型
    错误提示 Unsupported compiler 'com.apple.compilers.llvmgcc42' selected for architecture 'i386'
    IOS 第三方库之-MBProgressHUD的使用详解
    ios 测试工程是否内存泄漏
    单双击手势
  • 原文地址:https://www.cnblogs.com/huqianliang/p/5688475.html
Copyright © 2011-2022 走看看