分页简单封装

定义分页模型: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 }
这样分页效果就实现了,我们要实现分页效果,只要传入相应的参数和相应的数据库执行语句即可实现,希望大家能灵活运用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值