分页简单封装

定义分页模型:PageModel

查看源码打印?
001 package com.common.page;   

002     

003 import java.util.List;   

004     

005 /**  

006  * 封装分页信息  

007  * @author Administrator  

008  *  

009  */  

010 public class PageModel<E> {   

011     

012     //结果集   

013     private List<E> list;   

014         

015     //查询记录数   

016     private int totalRecords;   

017         

018     //每页多少条数据   

019     private int pageSize;   

020         

021     //第几页   

022     private int pageNo;   

023         

024     /**  

025      * 总页数  

026      * @return  

027      */  

028     public int getTotalPages() {   

029         return (totalRecords + pageSize - 1) / pageSize;   

030     }   

031         

032     /**  

033      * 取得首页  

034      * @return  

035      */  

036     public int getTopPageNo() {   

037         return 1;   

038     }   

039         

040     /**  

041      * 上一页  

042      * @return  

043      */  

044     public int getPreviousPageNo() {   

045         if (pageNo <= 1) {   

046             return 1;   

047         }   

048         return pageNo - 1;   

049     }   

050         

051     /**  

052      * 下一页  

053      * @return  

054      */  

055     public int getNextPageNo() {   

056         if (pageNo >= getBottomPageNo()) {   

057             return getBottomPageNo();   

058         }   

059         return pageNo + 1;     

060     }   

061         

062     /**  

063      * 取得尾页  

064      * @return  

065      */  

066     public int getBottomPageNo() {   

067         return getTotalPages();   

068     }   

069         

070     public List<E> getList() {   

071         return list;   

072     }   

073     

074     public void setList(List<E> list) {   

075         this.list = list;   

076     }   

077     

078     public int getTotalRecords() {   

079         return totalRecords;   

080     }   

081     

082     public void setTotalRecords(int totalRecords) {   

083         this.totalRecords = totalRecords;   

084     }   

085     

086     public int getPageSize() {   

087         return pageSize;   

088     }   

089     

090     public void setPageSize(int pageSize) {   

091         this.pageSize = pageSize;   

092     }   

093     

094     public int getPageNo() {   

095         return pageNo;   

096     }   

097     

098     public void setPageNo(int pageNo) {   

099         this.pageNo = pageNo;   

100     }   

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

3、简历Admin的实体bean类:

查看源码打印?
01 package com.common.page;   

02     

03 public class Admin {   

04     private int id;   

05     private String name;   

06     private String password;   

07     public int getId() {   

08         return id;   

09     }   

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、测试调用:
查看源码打印?
01 package com.common.page;   

02     

03 import java.sql.Connection;   

04 import java.sql.PreparedStatement;   

05 import java.sql.ResultSet;   

06 import java.sql.SQLException;   

07 import java.util.ArrayList;   

08 import java.util.List;   

09     

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 }
这样分页效果就实现了,我们要实现分页效果,只要传入相应的参数和相应的数据库执行语句即可实现,希望大家能灵活运用。

你可能感兴趣的:(分页)