`
Etwo
  • 浏览: 104657 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

SSH、JavaWeb的分页代码,封装好、直接调用,简单实用、分页API

阅读更多

      这是继上一个的基于JavaWeb的又一个不同的分页代码,直接分离查询,可靠而实用,上一个分页代码比较简单,原理是直接获取数据库的所有数据,这样实现的分页虽然很快,毕竟查出来的数据直接保存在集合中,随后的分页只是实现了取得其中的一部分数据而已,但弊端是如果数据量大的话,可能就会造成内存溢出的现象,所以鉴于此,我这次把这个直接采用数据库中分页原理把代码贴出来,希望对于很多朋友都有所帮助,并且有分页API,希望对大家有所帮助。
       在这里我把使用步骤给大家说一下(呵呵~我在网上也找了很多的分页代码,我不知道是很难还是自己没看懂,就没怎么一个很完整的代码,在这里我只是共享我的一些学习心得,鉴于此,我把详细的使用步骤列在下面)

分页使用步骤使用:(此使用步骤是基于struts的,类似servlet的,大家可以模仿此调用写出即可)
一、将以下Paging类加入到你的项目中
二、在action中加入以下两个属性

1.//分页(必需)  
2.private Paging paging;  
3.  
4.//当前页码(必需)  
5.private int cur_page;  
6.  
7.public int getCur_page() {  
8.return cur_page;  
9.}  
10.  
11.public void setCur_page(int cur_page) {  
12.this.cur_page = cur_page;  
13.}  

 三、调用

1.//(必需)  
2.this.paging = new Paging();  
3.                 //(必需)  
4.if(this.cur_page == 0) {  
5.this.cur_page = 1;  
6.}  
7.  
8.//设置当前页码(必需)  
9.this.paging.setCurPage(this.cur_page);  
10.  
11.//把得到总共显示的数据记录设置在分页总纪录中(必需)  
12.this.paging.setRowCount(userMagr.count());  
13.  
14.//设置每页显示的数据记录(必需)  
15.this.paging.setPageRowCount(3);  
16.  
17.//保存分页工具条(必需)  
18.request.setAttribute("toolBar", this.paging.getToolBar("user_list.do"));  
19.  
20.//得到每页显示数据(必需)  
21.this.users = userMagr.list(paging);  

 分页源代码:

1.package net.etwo.util;  
2.  
3.public class Paging {  
4.  
5./** 
6.* 分页 
7.* @说明:本分页采用直接获取每一页的数据 
8.* @author Etwo 
9.*/  
10.  
11./* 
12.* 分页要素: 
13.* 1、首页 first 
14.* 2、最后一页 last 
15.* 3、页总数 pageCount 
16.* 4、总共显示的数据记录 rowCount 
17.* 5、每页显示的数据记录 pageRowCount 
18.* 6、当前页 curPage 
19.* 7、定义每一页的开始 start 
20.* 8、定义每一页的结束 end 
21.*/  
22.  
23./** 
24.* 1、首页 first 
25.*/  
26.private int first;  
27.  
28./** 
29.* 2、最后一页 last 
30.*/  
31.private int last;  
32.  
33./** 
34.* 3、页总数 pageCount 
35.*/  
36.private int pageCount;  
37.  
38./** 
39.* 4、总共显示的数据记录 rowCount 
40.*/  
41.private long rowCount;  
42.  
43./** 
44.* 5、每页显示的数据记录 pageRowCount 
45.*/  
46.private int pageRowCount;  
47.  
48./** 
49.* 6、当前页 curPage 
50.*/  
51.private int curPage;  
52.  
53./** 
54.* 7、定义每一页的开始 start 
55.*/  
56.private int start;  
57.  
58./** 
59.* 8、定义每一页的结束 end 
60.*/  
61.private int end;  
62.  
63.  
64./** 
65.* 计算并得出页总数 
66.* @return 
67.*/  
68.public int getPageCount() {  
69.this.pageCount = (int)Math.ceil((double)this.getRowCount() / (double)this.getPageRowCount());  
70.return pageCount;  
71.}  
72.  
73./** 
74.* 得到总共显示的数据记录 
75.* @return 
76.*/  
77.public long getRowCount() {  
78.return rowCount;  
79.}  
80.  
81./** 
82.* 设置总共显示的数据记录 
83.* @param rowCount 
84.*/  
85.public void setRowCount(long rowCount) {  
86.this.rowCount = rowCount;  
87.}  
88.  
89./** 
90.* 得到每页显示的数据记录 
91.* @return 
92.*/  
93.public int getPageRowCount() {  
94.return pageRowCount;  
95.}  
96.  
97./** 
98.* 设置每页显示的数据记录 
99.* @param pageRowCount 
100.*/  
101.public void setPageRowCount(int pageRowCount) {  
102.this.pageRowCount = pageRowCount;  
103.}  
104.  
105./** 
106.* 得到当前页 
107.* @return 
108.*/  
109.public int getCurPage() {  
110.return curPage;  
111.}  
112.  
113./** 
114.* 设置当前页 
115.* @param curPage 
116.*/  
117.public void setCurPage(int curPage) {  
118.this.curPage = curPage;  
119.}  
120.  
121./** 
122.* 得到每页的开始记录数 
123.* @return 
124.*/  
125.public int getStart() {  
126.this.start = (this.getCurPage() - 1) * this.getPageRowCount();  
127.return start;  
128.}  
129.  
130./** 
131.* 得到每页的结束记录数 
132.* @return 
133.*/  
134.public int getEnd() {  
135.this.end = this.getPageRowCount();  
136.return end;  
137.}  
138.  
139./** 
140.* 得到首页 
141.* @return 
142.*/  
143.public int getFirst() {  
144.return this.first = 1;  
145.}  
146.  
147./** 
148.* 得到最后一页 
149.* @return 
150.*/  
151.public int getLast() {  
152.this.last = (int)this.getPageCount();  
153.return last;  
154.}  
155.  
156./** 
157.* 上一页 
158.* @return 
159.*/  
160.public int previous() {  
161.return (this.getCurPage() > 1) ? this.getCurPage() - 1 : 1;  
162.}  
163.  
164./** 
165.* 下一页 
166.* @return 
167.*/  
168.public int next() {  
169.return (this.getCurPage() < (int)this.getPageCount()) ? this.getCurPage() + 1 : (int)this.getPageCount();  
170.}  
171.  
172./** 
173.* 判断是否是首页 
174.* @return 
175.*/  
176.public boolean isFirst() {  
177.return (this.getCurPage() == 1) ? true : false;  
178.}  
179.  
180./** 
181.* 判断是否是最后一页 
182.* @return 
183.*/  
184.public boolean isLast() {  
185.return (this.getCurPage() == this.getPageCount()) ? true : false;  
186.}  
187.  
188./** 
189.* 客户端显示的工具条 
190.*/  
191.public String getToolBar(String url) {  
192.        String str, temp;  
193.         
194.        //用于判断url中是否存在?  
195.        if(url.indexOf("?") == -1) {  
196.            temp = "?";  
197.        } else {  
198.            temp = "&";  
199.        }  
200.         
201.        str = "<form method='post' name='frmPage' action='" + url + "'> ";  
202.        str += "<p align='right' id='page'>";  
203.        str += "<span style='font-size: 12px; font-weight: bold;'>";  
204.        //判断是否是首页  
205.        if(isFirst()) {  
206.        str += "首页 上一页&nbsp;";  
207.        } else {  
208.            str += "<a href='" + url + temp + "cur_page=" + this.getFirst() + "'>首页</a>&nbsp;";  
209.            str += "<a href='" + url + temp + "cur_page=" + this.previous() + "'>上一页</a>&nbsp;";  
210.        }  
211.        //判断是否是最后一页  
212.        if(isLast()) {  
213.        str += "下一页 尾页&nbsp;";  
214.        } else {  
215.            str += "<a href='" + url + temp + "cur_page=" + this.next() + "'>下一页</a>&nbsp;";  
216.            str += "<a href='" + url + temp + "cur_page=" + this.getLast() + "'>尾页</a>&nbsp;";  
217.        }  
218.        str += "&nbsp;共<b>" + this.rowCount + "</b>条记录&nbsp;";  
219.        str += "&nbsp;转到<select name='page' onChange=\"location='" + url + temp + "cur_page='+this.options[this.selectedIndex].value\">";  
220.         
221.        for(int i = 1; i <= this.getPageCount(); i++) {  
222.        //判断是否是当前页,若是,则默认为选中当前页  
223.            if(i == curPage)  
224.                str += "<option value='" + i + "' selected>第" + i + "页</option>";  
225.            else  
226.                str += "<option value='" + i + "'>第" + i + "页</option>";  
227.        }  
228.        str += "</select></span></p></form>";  
229.        return str;  
230.}  
231.}  
 
4
1
分享到:
评论

相关推荐

    网站分页代码封装jar包

    本项目提供了一个针对SQL Server数据库的Java代码封装,帮助开发者快速实现分页功能,避免重复编写类似的代码。 首先,我们需要理解分页的基本原理。在SQL中,我们可以使用`LIMIT`(在MySQL中)或`OFFSET`和`FETCH ...

    JavaWeb分页技术与实现(含代码)

    ### JavaWeb分页技术与实现 #### 一、引言 在JavaWeb应用程序开发中,分页技术是一项非常重要的功能,特别是在处理大量数据时。合理的分页不仅可以提高用户体验,还能有效减轻服务器负担,提高系统的响应速度。...

    javaweb分页简单分页

    在JavaWeb开发中,分页是一项常见的功能,用于处理大量数据时提高用户体验,避免一次性加载过多数据导致页面响应变慢。本教程将详细介绍如何实现一个简单的分页功能。 首先,理解分页的基本概念。分页通常包括两个...

    javaweb实现分页代码

    分页代码 action接受参数负责调用service,service调用dao查询具体的分页数据,同时将返回的数据封装到PageBean中,再返回action以PageBean。适合初学者参考。注:还包含类似动态显示条(sql数据加到十几页可以看到...

    JavaWeb实现分页查询案例

    在JavaWeb开发中,分页查询是一个非常常见的需求,它能有效地提高网页加载速度,提升用户体验。本案例通过原生的PageBean实现分页查询,采用JDBC(Java Database Connectivity)进行数据库操作,Servlet作为控制层...

    javaweb经典分页源码

    JavaWeb经典分页源码是Web开发中常见的一种技术实现,它主要用于处理大量数据的展示问题,提升用户体验。在Web应用程序中,如果一次性加载所有数据,不仅会消耗大量的服务器资源,还可能导致用户界面响应速度变慢。...

    源代码_JavaWeb实现分页查询_java_

    在Java Web开发中,分页查询是一个非常常见的需求,它能帮助用户更有效地浏览大量数据,提高用户体验。本文将深入探讨如何使用Java实现基于数据库的分页查询。 首先,理解分页查询的基本概念。分页是将大量数据分为...

    javaweb两中分页方法

    在JavaWeb开发中,分页是常见的功能,用于在大量数据中进行有效的浏览和导航。本文将详细介绍两种常用的JavaWeb分页方法:基于数据库查询的分页和基于内存的分页。 一、基于数据库查询的分页 1. SQL查询分页: ...

    javaWeb分页的实现

    在JavaWeb开发中,分页是常见的功能,用于展示大量数据时提高用户体验。它允许用户逐步浏览信息,而不是一次性加载所有内容。本示例将深入探讨如何使用MVC(Model-View-Controller)架构模式来实现JavaWeb应用程序中...

    javaweb分页

    本教程将详细讲解如何通过添加一个PageBean来实现简单的Java Web分页功能。 首先,我们需要理解分页的基本概念。分页通常涉及到两个关键参数:当前页数(currentPage)和每页显示的记录数(pageSize)。用户可以...

    javaweb分页.zip

    在JavaWeb开发中,分页是一项常见的功能,用于在大量数据中进行有效的浏览。本示例项目"javaweb分页.zip"展示了如何在MyEclipse环境下,采用MVC(Model-View-Controller)设计模式来实现这一功能。在这个过程中,...

    JavaWeb实现简单分页

    在JavaWeb开发中,分页是一项常见的功能,它允许用户以较小的数据量浏览大量数据,提高了用户体验并减轻了服务器压力。本项目通过结合jsp、servlet和mysql数据库,实现了简单的分页功能。以下是对这个实现过程的详细...

    javaWeb分页和文件上传

    5. **MyBatis的分页插件**: 如MyBatis-Plus提供了便捷的分页API,只需要简单的配置即可实现分页查询。 6. **自定义分页逻辑**: 根据具体需求,也可以自己编写SQL语句,手动计算页码和总数。 **文件上传** 文件...

    javaweb ssh 聊天项目

    【标题】"javaweb ssh 聊天项目"是一个基于JavaWeb技术栈的SSH(Struts2、Spring、Hibernate)框架实现的在线聊天应用程序。这个项目旨在帮助开发者理解和掌握如何利用SSH框架来构建功能丰富的Web应用,特别是涉及到...

    前端Javaweb分页实现

    在前端JavaWeb开发中,分页是一个非常常见的需求,它能有效地管理大量数据,提高用户体验。本示例提供了一个可复用的分页代码,旨在帮助开发者快速集成到自己的项目中。下面将详细介绍如何实现前端JavaWeb的分页功能...

    javaWeb分页代码

    在JavaWeb开发中,分页是一种常见的功能,用于在大量数据中进行有效的浏览和导航。当我们需要展示数据库中的数据时,一次性加载所有记录可能会导致页面加载速度变慢,甚至消耗过多的服务器资源。因此,分页技术...

    JavaWeb中的简单分页完整代码(推荐)

    在Java Web开发中,分页是一种常见且实用的技术,它通过将大量的数据分隔成小块,帮助用户更有效地浏览和处理信息。本文将详细介绍如何在Java Web项目中实现简单的分页功能。 首先,登录页面的创建是分页功能的前置...

    ssh整合系统分页ajax

    5. 示例中的"qimo_JavaWeb"可能是一个包含示例代码的文件或项目,它可能包含了SSH整合的配置文件、Java源代码、JSP视图文件以及相关的分页、校验和Ajax实现。对于初学者来说,研究这个示例可以帮助理解如何在实际...

    JavaWeb 数据库 分页 原理 解析 下载

    JavaWeb 数据库 分页 原理 解析 下载 简单易懂 将下载后的压缩文件解压后可以得到page_csdn文件夹,用eclipse导入即可,运行之前请运行page.sql数据库脚本,我使用的是MySQL数据库。 部署到Tomcat服务器后,在...

    javaweb界面分页

    javaweb实现界面分页显示,方法已封装好,直接调用即可

Global site tag (gtag.js) - Google Analytics