`
systemcookie
  • 浏览: 3474 次
社区版块
存档分类
最新评论

分页简单封装

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

分享到:
评论

相关推荐

    简单易懂js分页(已封装)

    这个简单的分页封装允许你轻松地在项目中集成分页功能,只需要调用相应的方法即可。当然,实际应用中可能还需要考虑更多的细节,如错误处理、异步操作的管理等。 总结来说,JavaScript分页是一个涉及数据处理、用户...

    java分页方法封装直接调用即可

    此Demo使用java编写,可以封装成jar方便各种项目分页...简单来说,本人就是吧分页的功能独立成一个项目,主要类是PageUtil.java 此类封装分页逻辑,页面自动生成分页区,数据显示条数可自动以,一切动作只需传参即可。

    gwt 分页控件封装

    **封装** 是软件开发中的一个关键概念,意味着将复杂的功能或对象隐藏在简单的接口后面,使得其他开发者可以更轻松地使用这些功能,而无需理解其实现细节。在本例中,“自己封装的gwt分页控件”意味着创建了一个...

    php实现数据分页封装

    4. **封装分页类** 将以上逻辑封装成一个类,可以方便地在项目中重复使用。创建一个名为`Page`的类,包含初始化、计算总页数、生成分页链接和获取当前页数据的方法。例如: ```php class Page { private $db; ...

    封装的分页插件

    这里提到的是一个由个人开发者封装的简单分页插件,它可以帮助我们轻松地在网页上实现数据的分页显示。 分页的基本原理是将大数据集分割成较小、可管理的部分,通常每一页显示一定数量的条目。这样可以提高用户体验...

    Hibernate分页封装

    下面是一个简单的Hibernate分页封装的示例代码: ```java public class Happer extends HibernateDaoSupport { private int p; //当前页 private int size; //一页分多少条 private int nextPage; //下一页 ...

    Hibernate中分页查询的封装。

    本文将深入探讨如何在Hibernate中进行分页查询的封装,并提供相关的源码和工具使用方法。 首先,我们需要了解Hibernate中的Criteria查询,这是实现分页查询的一种方式。Criteria API允许我们以面向对象的方式构建...

    超级封装的.tag标签分页、超级简化jsp内的分页代码、eclipse源码

    本资源提供了一种高效且简洁的分页解决方案,利用.tag标签技术来封装分页逻辑,使得在JSP页面中的实现变得简单易懂。 首先,我们来详细了解一下`.tag`标签。`.tag`文件是JSP标准标签库(JSTL)的一部分,用于创建...

    封装好直接使用的jsp分页插件

    "封装好直接使用的jsp分页插件"正是一款针对这一需求设计的工具,它能够简化开发过程,使开发者能够快速实现分页功能,而无需关注底层复杂的逻辑。 该插件适用于jsp与servlet的原生组合,同时对流行的SSH(Struts2 ...

    javaweb分页简单分页

    本教程将详细介绍如何实现一个简单的分页功能。 首先,理解分页的基本概念。分页通常包括两个主要部分:当前页数和每页显示的数据量。用户可以通过点击页码或使用导航按钮来改变这些值。在JavaWeb应用中,我们可以...

    封装好的PHP分页类

    本篇介绍一个封装良好的PHP分页类,该类支持自定义样式、显示形式,并且具有简单的调用方式。 #### 分页类的功能与实现 该PHP分页类提供了丰富的自定义选项,使得开发者可以根据具体需求来定制分页显示的效果。...

    ADO.NET分页封装[支持多表连接查询分页]-代码实现

    本教程将深入探讨如何使用ADO.NET进行分页封装,特别是对于涉及多表连接查询的场景。分页在大数据量的展示中尤为重要,因为它允许用户以更高效的方式浏览和管理数据,而不会一次性加载所有记录导致性能下降。 首先...

    简单的分页类(php)

    一个简单封装的分页类,拿出来分享下,有需要的下载,也可以直接https://gitee.com/99cyx99/class-project/blob/master/page.class.php

    简单而强大的jsp分页

    开发者可以创建自己的分页标签,封装分页逻辑,使得JSP页面更加简洁,提高代码复用性。 3. **Servlet控制:** 在Servlet中处理分页逻辑,如计算页码、查询数据,然后将结果传递给JSP页面进行渲染。 **三、具体...

    基于vue20封装的一个分页组件

    "基于vue20封装的一个分页组件"的标题表明这个项目是一个使用Vue 2.x版本(通常指的是2.0到2.6)开发的,用于处理分页功能的组件。分页在网页应用中十分常见,特别是在数据量较大、需要分批次加载的情况下,能够提高...

    winform 分页控件 DevExpress版

    - **自定义分页**:用户可以自由设定每页显示的记录数,并提供多种分页样式,如简单、详细和导航按钮等。 - **数据过滤与排序**:支持行内过滤和排序,使用户能快速找到所需信息。 - **数据绑定**:控件能够轻松...

    仿谷歌分页,仿谷歌分页,分页,最简单的分页

    2. 分页对象封装:为了方便管理和传递分页信息,我们可以创建一个分页对象,包含属性如总记录数、总页数、当前页数、每页记录数等。例如,我们可以定义一个名为`Pagination`的Java类,包含这些字段,并提供相应的...

    分页的简单实现

    分页的简单实现。 1、获取分页按钮点击的页面 2、设置每页显示的数量 3、计算当前页第一条记录的编号 4、数据库连接 5、通过limit查询记录,获取分页数据,并封装到数组中 6、获取表中记录数量 7、计算出总...

    纯jsp分页,不加任何封装

    总结,纯jsp分页不依赖任何封装库,虽然相对简单,但能帮助开发者深入理解分页原理。在实际开发中,我们通常会使用成熟的分页库如MyBatis的PageHelper,Spring Data JPA的Pageable等,以简化代码并提高性能。不过,...

    wpf 用户控件实现分页

    在Windows Presentation Foundation (WPF) 中,用户控件...用户控件允许我们封装复杂的功能,提高代码的可维护性和重用性。在实际应用中,可以根据需求调整控件的外观和功能,以适应不同的界面设计和数据处理逻辑。

Global site tag (gtag.js) - Google Analytics