定义分页模型: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 }
这样分页效果就实现了,我们要实现分页效果,只要传入相应的参数和相应的数据库执行语句即可实现,希望大家能灵活运用。
分享到:
相关推荐
这个简单的分页封装允许你轻松地在项目中集成分页功能,只需要调用相应的方法即可。当然,实际应用中可能还需要考虑更多的细节,如错误处理、异步操作的管理等。 总结来说,JavaScript分页是一个涉及数据处理、用户...
此Demo使用java编写,可以封装成jar方便各种项目分页...简单来说,本人就是吧分页的功能独立成一个项目,主要类是PageUtil.java 此类封装分页逻辑,页面自动生成分页区,数据显示条数可自动以,一切动作只需传参即可。
**封装** 是软件开发中的一个关键概念,意味着将复杂的功能或对象隐藏在简单的接口后面,使得其他开发者可以更轻松地使用这些功能,而无需理解其实现细节。在本例中,“自己封装的gwt分页控件”意味着创建了一个...
4. **封装分页类** 将以上逻辑封装成一个类,可以方便地在项目中重复使用。创建一个名为`Page`的类,包含初始化、计算总页数、生成分页链接和获取当前页数据的方法。例如: ```php class Page { private $db; ...
这里提到的是一个由个人开发者封装的简单分页插件,它可以帮助我们轻松地在网页上实现数据的分页显示。 分页的基本原理是将大数据集分割成较小、可管理的部分,通常每一页显示一定数量的条目。这样可以提高用户体验...
下面是一个简单的Hibernate分页封装的示例代码: ```java public class Happer extends HibernateDaoSupport { private int p; //当前页 private int size; //一页分多少条 private int nextPage; //下一页 ...
本文将深入探讨如何在Hibernate中进行分页查询的封装,并提供相关的源码和工具使用方法。 首先,我们需要了解Hibernate中的Criteria查询,这是实现分页查询的一种方式。Criteria API允许我们以面向对象的方式构建...
本资源提供了一种高效且简洁的分页解决方案,利用.tag标签技术来封装分页逻辑,使得在JSP页面中的实现变得简单易懂。 首先,我们来详细了解一下`.tag`标签。`.tag`文件是JSP标准标签库(JSTL)的一部分,用于创建...
"封装好直接使用的jsp分页插件"正是一款针对这一需求设计的工具,它能够简化开发过程,使开发者能够快速实现分页功能,而无需关注底层复杂的逻辑。 该插件适用于jsp与servlet的原生组合,同时对流行的SSH(Struts2 ...
本教程将详细介绍如何实现一个简单的分页功能。 首先,理解分页的基本概念。分页通常包括两个主要部分:当前页数和每页显示的数据量。用户可以通过点击页码或使用导航按钮来改变这些值。在JavaWeb应用中,我们可以...
本篇介绍一个封装良好的PHP分页类,该类支持自定义样式、显示形式,并且具有简单的调用方式。 #### 分页类的功能与实现 该PHP分页类提供了丰富的自定义选项,使得开发者可以根据具体需求来定制分页显示的效果。...
本教程将深入探讨如何使用ADO.NET进行分页封装,特别是对于涉及多表连接查询的场景。分页在大数据量的展示中尤为重要,因为它允许用户以更高效的方式浏览和管理数据,而不会一次性加载所有记录导致性能下降。 首先...
一个简单封装的分页类,拿出来分享下,有需要的下载,也可以直接https://gitee.com/99cyx99/class-project/blob/master/page.class.php
开发者可以创建自己的分页标签,封装分页逻辑,使得JSP页面更加简洁,提高代码复用性。 3. **Servlet控制:** 在Servlet中处理分页逻辑,如计算页码、查询数据,然后将结果传递给JSP页面进行渲染。 **三、具体...
"基于vue20封装的一个分页组件"的标题表明这个项目是一个使用Vue 2.x版本(通常指的是2.0到2.6)开发的,用于处理分页功能的组件。分页在网页应用中十分常见,特别是在数据量较大、需要分批次加载的情况下,能够提高...
- **自定义分页**:用户可以自由设定每页显示的记录数,并提供多种分页样式,如简单、详细和导航按钮等。 - **数据过滤与排序**:支持行内过滤和排序,使用户能快速找到所需信息。 - **数据绑定**:控件能够轻松...
2. 分页对象封装:为了方便管理和传递分页信息,我们可以创建一个分页对象,包含属性如总记录数、总页数、当前页数、每页记录数等。例如,我们可以定义一个名为`Pagination`的Java类,包含这些字段,并提供相应的...
分页的简单实现。 1、获取分页按钮点击的页面 2、设置每页显示的数量 3、计算当前页第一条记录的编号 4、数据库连接 5、通过limit查询记录,获取分页数据,并封装到数组中 6、获取表中记录数量 7、计算出总...
总结,纯jsp分页不依赖任何封装库,虽然相对简单,但能帮助开发者深入理解分页原理。在实际开发中,我们通常会使用成熟的分页库如MyBatis的PageHelper,Spring Data JPA的Pageable等,以简化代码并提高性能。不过,...
在Windows Presentation Foundation (WPF) 中,用户控件...用户控件允许我们封装复杂的功能,提高代码的可维护性和重用性。在实际应用中,可以根据需求调整控件的外观和功能,以适应不同的界面设计和数据处理逻辑。