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. }  
  • 相关阅读:
    LeetCode "Median of Two Sorted Arrays"
    LeetCode "Distinct Subsequences"
    LeetCode "Permutation Sequence"

    LeetCode "Linked List Cycle II"
    LeetCode "Best Time to Buy and Sell Stock III"
    LeetCode "4Sum"
    LeetCode "3Sum closest"
    LeetCode "3Sum"
    LeetCode "Container With Most Water"
  • 原文地址:https://www.cnblogs.com/huqianliang/p/5688475.html
Copyright © 2011-2022 走看看