- 浏览: 72000 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
Fkron:
系乱的代码.....
ibatis分页 -
xiechunmei13:
最近项目使用到了struts+spring+ibatis,看到 ...
ibatis分页组件分页
步骤:
1. 创建SepPage类,并设置有关的方法。
2. 在进行页面的转移时传递并当前的页面并传递参数。
3. 进行分页处理。
a. 计算总记录数
b. 怎么样进行分页
c. 首页显示处理
d. 传递有关参数
e. 获取有关传递的页面的参数
实例:以查询所有的用户信息为例子进行说明
package bean;
/**********************分页类描述************************/
public class SepPage
{
private int allRows; // 一共有多少行记录
private int curPage = 1; // 当前页面
private int rowPerPage = 8; // 一页显示多少行
private int allPages; // 一共有多少页
public int getAllRows()
{
return allRows;
}
public void setAllRows(int allRows)
{
this.allRows = allRows;
}
public int getCurPage()
{
return curPage;
}
public void setCurPage(int curPage)
{
this.curPage = curPage;
}
public int getRowPerPage()
{
return rowPerPage;
}
public void setRowPerPage(int rowPerPage)
{
this.rowPerPage = rowPerPage;
}
public int getAllPages()
{
return allPages;
}
public void setAllPages(int allPages)
{
this.allPages = allPages;
}
}
2.数据接收servlet
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.DBOperationBean;
import java.util.*;
import util.Convert;
import java.sql.*;
import bean.*;
/**
* servlet类,获取有关客户的信息并进行相关的处理
* @author qihuasun
*/
public class CustomerServlet extends HttpServlet
{
//查询所有sql语句
public static final String SELECTBYALL="select * from SCOTT.EXRM_T_CUSTOMER order by CUM_FULLNAME ";
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//处理有关中文乱码问题
request.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=GBK");
response.setCharacterEncoding("GBK");
String status=request.getParameter("status").trim();//获取页面传递的标志位status
String path="error.jsp";
if(!status.equals("")|| status!=null)
{
if(status.equals("findall"))
{
DBOperationBean db=new DBOperationBean();
String page=request.getParameter("curpage");
try
{
int curPage = Integer.parseInt(request.getParameter("curPage"));
//获取页面传递的参数
SepPage pa=new SepPage();
pa.setCurPage(curPage);
ArrayList al=db.query(this.SELECTBYALL,pa);
if(al!=null)
{
// path="main.jsp";
path="TestMain2.jsp";
request.setAttribute("all",al);
}
else
{
path="error.jsp";
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
request.getRequestDispatcher(path).forward(request,response);
}
}
4. 数据访问类
package bean;
import java.sql.*;
import javax.sql.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.naming.*;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import java.util.*;
import bean.SepPage;
/**
* bean类,获取有关配置文件的信息的页面的信息,并进行有关的处理
* @author qihuasun
*/
public class DBOperationBean
{
//驱动
private final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
// 数据库连接地址
private final String DBURL = "jdbc:oracle:thin:@127.0.0.1:1521:data";
// 数据库用户名
private final String DBUSER = "SCOTT";
// 数据库连接密码
private final String DBPASSWORD = "sqh";
// 声明一个数据库连接对象
private Connection conn = null ;
private PreparedStatement pstm=null;
private ResultSet rs=null;
public DBOperationBean()
{
this.init();
}
private void init() //从数据库连接属性XML配置文件中获取关于连接的信息
{
conn=new DBConnection().getConnection();
}
private Connection getConnection() //取得数据库连接并设置为当前连接
{
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);// 连接数据库
System.out.println("connected");
}
catch(Exception ex)
{
ex.printStackTrace();
}
return this.conn;
}
public ArrayList query(String sql,SepPage page) throws Exception
{//执行查询,返回结果集
ArrayList al=new ArrayList();
try
{
Connection conn=this.getConnection();
pstm = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=pstm.executeQuery();
rs.last(); // 移动到最后一行
page.setAllRows(rs.getRow()); // 设置一共有多少行记录
// 算出有多少页
if (page.getAllRows() % page.getRowPerPage()== 0)
{
page.setAllPages(page.getAllRows() / page.getRowPerPage());
}
else
{
page.setAllPages(page.getAllRows() / page.getRowPerPage() + 1);
}
//判定是否是第一页
if (page.getCurPage() == 1) //当前页
{
// 将指针移动到此ResultSet对象的开头,正好位于第一行之前
rs.beforeFirst();
}
else
{
// 将指针移动到此ResultSet对象的给定行编号
rs.absolute((page.getCurPage() - 1) * page.getRowPerPage());
}
int i = 0;
while(rs.next() && i < page.getRowPerPage())
{
Customer cu=new Customer();
cu.setId(rs.getInt("CUM_ID"));
cu.setName(rs.getString("CUM_FULLNAME"));
cu.setAddress(rs.getString("CUM_MAINADDRESS"));
cu.setPhone(rs.getString("CUM_PHONE"));
al.add(cu);
i++;
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
finally
{
try
{
if(conn!=null)
{
this.conn.close();
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
return al;
}
}
4、页面显示
<%@ page language="java" contentType="text/html;charset=GBK"%>
<%@ page import="java.util.*,bean.SepPage"%>
<%@page import="bean.Customer;"%>
<%
ArrayList all = (ArrayList) request.getAttribute("all");
SepPage seppage = (SepPage) request.getAttribute("pagebean");
//获取设置的SepPage参数
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>客户管理</title>
<link href="css/style.css" rel="stylesheet" />
</head>
<body>
<div class="top" >
『 作者管理 』
</div>
<div class="center">
<form action="AuthorServlet?status=selectbylike&curPage=1" method="post" style="margin: 0;">
<table class="fine" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3" style="height: 40px;">
</td>
</tr>
<tr>
<td>
序号
</td>
<td>
客户名称
</td>
<td>
联系电话
</td>
<td>
地址
</td>
<td>
操作
</td>
</tr>
<%
int i=0;
if (all != null && all.size() != 0)
{
for (int j=0;j<all.size();j++)
{
i++;
Customer cus=(Customer)all.get(j);
int authorId1=cus.getId();
String str="找不到记录!!!";
if(i==0)
{
out.println("<scrtipt>alert('找不到记录')<script>");
}
else
{%>
<tr>
<td>
<%=i%>
</td>
<td>
<%=cus.getName()%>
</td>
<td>
<%=cus.getPhone()%>
</td>
<td>
<%=cus.getAddress()%>
</td>
<td>
<td><a href="CustomerServlet?status=selectbyid&id=<%=cus.getId()%>">更新</a> </td>
<td><a href="CustomerServlet?status=delete&id=<%=cus.getId()%>" onclick="if(confirm('是否删除业务信息?')){return true;}else{return false;}">删除</a> </td>
<td><a href="addCus.jsp">添加</a></td>
</tr>
<%}%>
<%
}//end for循环
}//end if all != null
%>
<%
if (seppage != null) {
%>
<tr>
<td colspan="3"
style="height: 32px; text-align: right; font-weight: bold; padding-right: 10px;">
<font color="#FF5BAD">一共有 <font color="red"><%=seppage.getAllPages()%></font> 页 当前在第 <font
color="red"><%=seppage.getCurPage()%></font> 页 </font>
<%
if (seppage.getCurPage() != 1) //不是第一页,则首页,上一页可用
{
%>
<a href="CustomerServlet?status=selectbyall&curPage=1">首 页</a>
<a
href="CustomerServlet?status=selectbyall&curPage=<%=seppage.getCurPage()-1 %>">上一页</a>
<%
}
%>
<%
if (seppage.getCurPage() != seppage.getAllPages())//不是最后一页,则有下一页和末页
{
%>
<a
href="CustomerServlet?status=selectbyall&curPage=<%=seppage.getCurPage()+1 %>">下一页</a>
<a
href="CustomerServlet?status=selectbyall&curPage=<%=seppage.getAllPages() %>">末
页</a>
<%
}
%>
</td>
</tr>
<%
}
%>
</table>
</form>
<form action="CustomerServlet?status=selectbylike&curPage=1" method="post" style="margin: 0;">
<table class="fine" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3" style="height: 40px;">
<select style="height: 20px" name="sel">
<option selected value="由客户姓名">
由客户姓名
</option>
<option value="由地址">
由地址
</option>
</select>
<input type="text" name="in" style="width: 200px" /><input type="submit" value="查 找" />
</td>
</tr>
</table>
</form>
</div>
</body>
发表评论
-
servlet分页
2009-09-16 16:33 3883步骤: 1. 创建SepPage类,并设置有关的 ... -
struts进行文件下载
2009-09-15 09:30 11771 使用Struts2控制文件下载 可能很多人会觉得,文件下载 ... -
使用servlet进行文件上传
2009-09-15 09:20 981package cn.lhf.servlet; import ... -
将数据库中的数据导入到exl中
2009-08-19 17:10 1999【详细介绍】:描述:将demo数据库中的表feature_pr ... -
文件上传和下载
2009-08-19 15:59 772文件上传:创建步骤:1 ... -
分页显示问题
2009-08-19 15:58 1110步骤:1. 创建SepPage类,并设置有关的方 ...
相关推荐
套用模板输出Excel,并对数据进行分页 套用模板输出Excel,并对数据进行分页 套用模板输出Excel,并对数据进行分页 套用模板输出Excel,并对数据进行分页 套用模板输出Excel,并对数据进行分页
本文将详细介绍如何使用原生的ADO(ActiveX Data Objects)组件在Delphi应用程序中实现数据分页显示。 首先,ADO是微软提供的一个数据访问接口,它允许开发者通过标准的OLE DB接口访问各种数据源,如SQL Server、...
在软件开发中,尤其是在处理大量数据时,对数据进行分页是一种常见的需求。分页不仅可以提高用户体验(通过减少加载时间),还可以优化后端资源的使用效率。本文将深入探讨如何对集合进行分页,并提供一个具体的实现...
在大数据量展示时,分页是必不可少的功能,它能有效地提高用户体验,避免一次性加载大量数据导致页面卡顿。Ajax 分页就是结合这两种技术,实现了在用户交互时动态加载分页内容,从而提升网页的响应速度和流畅性。 1...
在ASP.NET 2.0中操作数据:DataList和Repeater数据分页
本文实例讲述了easyUI使用分页过滤器对数据进行分页操作。分享给大家供大家参考,具体如下: 在后台管理系统中,由于数据量的庞大,我们经常需要用到easyui框架的分页工具。在本文章中,使用了分页过滤器进行分页的...
假分页是指在客户端对数据进行分页,而真实分页是指在服务器端对数据进行分页。在本文中,我们使用存储过程进行分页,这是一种高效的分页方式。 3. 存储过程分页 存储过程分页是指在服务器端使用存储过程对数据...
总的来说,对超长文本数据进行分页显示是一个涉及前端和后端协作的过程,涉及到数据处理、用户交互以及性能优化等多个方面。通过合理的设计和实现,可以有效地管理和展示大量文本数据,提升用户的浏览体验。
本项目标题为“WPF自动分页控件”,是利用Visual Studio 2010和.NET Framework 4.0进行开发的,主要目的是提供一个简便的方式来对数据进行分页显示,减轻UI线程负担,同时允许用户以直观的方式浏览和操作大量数据。...
在Windows Presentation Foundation(WPF)中,数据分页控件是一种强大的工具,它允许用户以分页方式查看大量数据,从而提高应用程序的性能和用户体验。本文将深入探讨WPF的数据分页控件及其核心概念、使用方法以及...
使用大数据处理工具NIFI,进行数据从Postgresql中导入到MySql中,实现数据的同步处理,处理的时候,是带有分页的,因为作者正在做相关的项目,而,用nifi同步数据好说,如何,进行数据的分页同步不好弄,这里,主要是,采用...
本节将从以下几个方面详细阐述实现千万级数据分页的关键技术点: 1. **SQL查询优化**:通过优化SQL语句来提高查询效率。 2. **动态生成SQL**:根据不同的参数动态生成SQL语句,实现灵活的分页功能。 3. **存储过程...
4. **数据分页**:jqGrid的分页功能默认是启用的,只需设置`rowNum`和`pager`选项即可。当用户更改分页大小或点击分页按钮时,jqGrid会自动处理数据的切片和显示。 5. **数据排序**:在初始化jqGrid时,我们可以...
- **数据模型处理**:首先,需要在后端(如Java)中对数据进行分页处理,这通常涉及到SQL查询语句的设计,例如使用`LIMIT`和`OFFSET`来限制返回结果的数量和起始位置。 - **PageSet类的设计**:`PageSet`类是管理...
在.NET开发环境中,C#是一种常用的编程语言,尤其在企业级应用中,处理大数据量的分页查询是一项常见的任务。...对于大型数据分页程序,良好的设计和实现能够显著提升用户体验,同时降低服务器资源的消耗。
* 降低客户端的负载,因为数据分页处理是在服务器端进行的。 * 提高数据安全,因为数据是在服务器端处理的,因此可以更好地控制数据的访问权限。 * 提高系统的扩展性,因为服务端分页可以更好地处理大量数据。 ...
在Java编程中,数据分页显示是Web应用中常见的需求,尤其在处理大量数据时,为了提高用户体验并优化服务器性能,通常需要将数据分成多个页面进行展示。本篇将深入探讨Java实现数据分页显示的核心技术和策略。 首先...
代码包包含了首页、上一页、下一页、尾页以及跳转指定页数等功能,满足了对数据进行分页处理的需求。 主要特点: 1、分页功能完善: 通过与按钮的交互,实现了对QTableWidget的分页展示,包括首页、上一页、下一页...
【Repeater分页显示】是ASP.NET Web应用程序中一种实现数据分页显示的方法。Repeater控件是一个非常灵活的数据绑定控件,它允许开发者自定义数据的显示格式。在这个例子中,Repeater被用来展示数据库中的新闻标题和...