分页问题

chenyongchina 2004-11-22 09:16:30
各位朋友:
前一段时间我用的是vector()先储存所有的查询内容,然后在分页,效率比较低,朋友能不能给我提供一些高效的分页的程序,源代码更好哦,谢谢了!
...全文
165 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
peterbarry 2004-11-22
  • 打赏
  • 举报
回复
顶楼上的
剑事 2004-11-22
  • 打赏
  • 举报
回复
package com;

import conn.DBConnManager;
import java.sql.*;
import java.util.*;

public class ResultGatherPro
{
private String sql;
private int intPageSize; //每页行数
private int intRowCount;
private int intPageCount;
private int intPage; //页号
private String Counter;

public ResultGatherPro()
{

}
public ResultGatherPro(String sqlcom,int rownum,int pagenum,String counter)
{
sql=sqlcom;
intPageSize = rownum;
intPage = pagenum;
Counter = counter;
}
public List selectRS(String sqlcom,int rownum,int pagenum,String counter)
{
this.sql = sqlcom;
this.intPageSize = rownum;
this.intPage = pagenum;
this.Counter = counter;
return selectRS();
}
public List selectRS()
{
List rsall = new ArrayList();
Map rsTree;
try{
DBConnManager conn = new DBConnManager();
Connection con = conn.getConnection("mssql");
Statement st = con.createStatement();
ResultSet rsc=st.executeQuery(Counter);
while(rsc.next())
{
intRowCount=rsc.getInt("allrow");
}
rsc.close();
st.close();
CallableStatement stmt = con.prepareCall("{call p_show(\""+sql+"\","+intPageSize+","+intPage+")}");
ResultSet rs = stmt.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
Object[] aa = new Object[numberOfColumns-1];
intPageCount = (intRowCount+intPageSize-1)/intPageSize;
while(rs.next())
{
rsTree = new HashMap(numberOfColumns);
for(int r=1;r<numberOfColumns+1;r++)
{
rsTree.put(rsmd.getColumnName(r),rs.getObject(r));
}
rsall.add(rsTree);
}
rs.close();
stmt.close();
conn.releaseConnection("mssql",con);
}catch(java.lang.Exception ex){
ex.printStackTrace();
}
return rsall;
}
public String ChangePage(String pagename,String url)
{
String urlchange=null;
if(intPage>1 && intPage<intPageCount)
{
urlchange="<a href="+pagename+"?pagenum="+(intPage-1)+url+">上一页</a><a href="+pagename+"?pagenum="+(intPage+1)+url+"> 下一页</a> 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
}else if(intPage==1 && intRowCount<=intPageSize){
urlchange="上一页 下一页 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
}else if(intPage==intPageCount && intPage!=1){
urlchange="<a href="+pagename+"?pagenum="+(intPage-1)+url+">上一页</a> 下一页 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
}else if(intPage==1 && intRowCount>=intPageSize){
urlchange="上一页 <a href="+pagename+"?pagenum="+(intPage+1)+url+"> 下一页</a> 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
}else{
urlchange = "<a href="+pagename+">第一页</a>";
}
return urlchange;
}
public String gotoPage(String url)
{
String javascript = "<script>function checksearch()\n{if(find.pagenum.value==\"\" || find.pagenum.value==\"0\"){alert('请输正确入页数!');find.pagenum.focus();return false;}\nif(isNaN(find.pagenum.value)){alert('请输入数字!');find.pagenum.focus();return false;}}</script>";
String form = "<table border='0' cellpadding='0' cellspacing='0'>\n"+javascript;
form += "<form name='find' action='' onSubmit='return checksearch()'>\n<tr><td width='40' align='center'>\n<input name='pagenum' type='text' size='2'>\n";
if(url!=null)
{
if(url.indexOf("&")>0)
{
String[] param = new String[(url.split("&")).length];
param = url.split("&");
for(int i = 0;i<param.length;i++)
{
form += "<input type='hidden' name='"+param[i].substring(0,param[i].indexOf("="))+"' value='"+param[i].substring(param[i].indexOf("=")+1)+"'>\n";
}
}else{
if(url.indexOf("=")>0)
{
form += "<input type='hidden' name='"+url.substring(0,url.indexOf("="))+"' value='"+url.substring(url.indexOf("=")+1)+"'>\n";
}
}
}
form += "</td><td width='25' align='center'><input type='submit' name='Submit' value='GO'>\n</td>\n</tr>\n</form>\n</table>";
return form;
}

自己写的
我用list
zhz586 2004-11-22
  • 打赏
  • 举报
回复
你搜索一下“分页”吧,有很多了!
yulchina 2004-11-22
  • 打赏
  • 举报
回复
最近也在寻找这方面的文章。关注中。。。
stone18 2004-11-22
  • 打赏
  • 举报
回复
里面有分页程序
stone18 2004-11-22
  • 打赏
  • 举报
回复
<%@ page contentType="text/html;charset=GBK" %>

<%
PartAttachInfo newPartAttachInfo=new PartAttachInfo();
PartAttachInfoDB newPartAttachInfoDB=new PartAttachInfoDB();
PartAttachInfoApp newPartAttachInfoApp=new PartAttachInfoApp();
Part newPart =new Part();
PartDB newPartDB =new PartDB();
PartApp newPartApp =new PartApp();
int departid=sysop.getDepartid();
Department newDepartment=new Department(dbi,departid);
String departcode=newDepartment.getCode();
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>广州本田零件追溯系统</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<link href="inc/style.css" rel="stylesheet" type="text/css">
</head>
<script language="javascript"><!--
if (window == top)top.location.href = "partno.jsp"; //frames.htm为框架网页
// --></script>
<script>

//var top=this;
//if (parent) top=parent;
//var tempstr="你";
// top.returnValue=tempstr;
// window.dialogArguments.document.all.ptm.partno.value="ll";
//top.close();
var ret = new Object();
function change(ptmname,obj)
{
var form=eval(obj);
//var ptna=eval(ptmname)
ptmname=form.value;
ret.partcoler=form.value;
//ptmname=form.value;
//alert(ret.ptmname+"--"+form+"---"+form.value);
}
function checkPartno(ptmid){

ret.partno=eval("document.form1.partno"+ptmid).value;
ret.partno=eval("document.form1.partno"+ptmid).value;
ret.partcoler=eval("document.form1.partcoler"+ptmid).value;
ret.suppliercode=eval("document.form1.suppliercode"+ptmid).value;
ret.number=eval("document.form1.number"+ptmid).value;
ret.packagesnum=eval("document.form1.packagesnum"+ptmid).value;
ret.modeltype=eval("document.form1.modeltype"+ptmid).value;
ret.coef=eval("document.form1.coef"+ptmid).value;
ret.lineno=eval("document.form1.lineno"+ptmid).value;
ret.supplyaddress=eval("document.form1.supplyaddress"+ptmid).value;
ret.hns=eval("document.form1.hns"+ptmid).value;
ret.partname=eval("document.form1.partname"+ptmid).value;
//ret.registerdate="<%= DateUtil.DateToString(new Date(),"yyyy-MM-dd") %>";
ret.crdate="<%= DateUtil.DateToString(new Date(),"yyyy-MM-dd") %>";
ret.plandate="";//<%= DateUtil.DateToString(new Date(),"yyyy-MM-dd") %>
ret.check=1;
window.returnValue = ret;
window.close();
}
function submit_form(pageid)
{
document.form1.pageid.value=pageid;
document.form1.submit();
}
</script>
<body>
<form action="partno_return.jsp" method="post" name="form1">
<input name="pageid" type="hidden" value="">
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#E1E1E1"> <tr>
<%
String partno="";
String suppliercode="";
String sql="";
int pageid=0;
int pagesize=60;
int cntall=0;
int totalpage=0;
int size=0;
ArrayList allPartno=new ArrayList();
if(request.getParameter("partno")!=null)
partno=request.getParameter("partno");
if(request.getParameter("pageid")!=null)
pageid=Integer.parseInt(request.getParameter("pageid"));
if(request.getParameter("suppliercode")!=null)
suppliercode=request.getParameter("suppliercode");
cntall=newPartAttachInfoApp.getPartCodeNum(dbi, suppliercode, partno);
if(cntall%pagesize>0)
totalpage=cntall/pagesize+1;
else
totalpage=cntall/pagesize;
if(pageid<=1)
pageid=1;
if(pageid>=totalpage)
pageid=totalpage;
allPartno=newPartAttachInfoApp.getPartCode( dbi, pageid, pagesize, suppliercode, partno);
size=allPartno.size();
for(int i=0; i<size;i++){
newPartAttachInfo=(PartAttachInfo)allPartno.get(i);
String partNo="";
String partcoler="";
String supplierCode="";
int number=0;
int packagesnum=0;
String modeltype="";
int coef=0;
String lineno="";
String supplyaddress="";
String hns="";
String partname="";
partNo=newPartAttachInfo.getPartNo();
partcoler =newPartAttachInfo.getPartColor();
supplierCode=newPartAttachInfo.getSupplyCode();
number=newPartAttachInfo.getPackNum();
packagesnum=newPartAttachInfo.getPackagesNum();
modeltype=newPartAttachInfo.getModelType();
coef=newPartAttachInfo.getCoef();
lineno=newPartAttachInfo.getLineNo();
supplyaddress=newPartAttachInfo.getSupplyAddr();
hns=newPartAttachInfo.getHNS();
newPart = newPartDB.getPart(dbi, partNo);
if(newPart!=null)
partname=newPart.getName();
if(i%3==0){
out.println("</tr>");
out.println("<tr>");
}
%>


<td height="19"><input name="check" type="radio" onClick="checkPartno(<%=i%>)" value="<%=i%>"><%=partNo%>:<font color="#0000FF"><%=partname%></font><font color="#FF0000"><%=partcoler%></font>
<input name="partno<%=i%>" type="hidden" id="partno" value="<%=partNo%>">
<input name="partcoler<%=i%>" type="hidden" id="partcoler" value="<%=partcoler%>">
<input name="suppliercode<%=i%>" type="hidden" id="suppliercode" value="<%=supplierCode%>">
<input name="number<%=i%>" type="hidden" id="number" value="<%=number%>">
<input name="packagesnum<%=i%>" type="hidden" id="packagesnum" value="<%=packagesnum%>">
<input name="modeltype<%=i%>" type="hidden" id="modeltype" value="<%=modeltype%>">
<input name="coef<%=i%>" type="hidden" id="coef" value="<%=coef%>">
<input name="lineno<%=i%>" type="hidden" id="lineno" value="<%=lineno%>">
<input name="supplyaddress<%=i%>" type="hidden" id="supplyaddress" value="<%=supplyaddress%>">
<input name="hns<%=i%>" type="hidden" id="hns" value="<%=hns%>">
<input name="partname<%=i%>" type="hidden" id="partname" value="<%=partname%>">

</td>


<%

}
if(size==1&&pageid<=1){
%>
<script language="JavaScript">
checkPartno("0");
</script>

<%
}else if(size==0){
%>
<script language="JavaScript">
ret.partno="";
ret.partcoler="";
<%if(departcode.trim().equals("company")){%>
ret.suppliercode="<%=suppliercode%>";
<%}else{%>
ret.suppliercode="";
<%}%>
ret.number="";
ret.packagesnum="";
ret.modeltype="";
ret.coef="";
ret.lineno="";
ret.supplyaddress="";
ret.hns="";
ret.registerdate="";
ret.crdate="";
ret.plandate="";
ret.partname="";
ret.check=0;
window.returnValue = ret;
window.close();
</script>
<%
}
%>
</tr>
</table>
<input name="suppliercode" type="hidden" value="<%=suppliercode%>">
<input name="partno" type="hidden" value="<%=partno%>">
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#F7F7F7">
<tr>
<td>共(<%=cntall%>)条 共(<%=totalpage%>)页 第(<%=pageid%>)页
<%if(pageid<=1){%>
首页 上一页
<%}else{%>
<a href="javascript:submit_form('1')" >首页</a> <a href="javascript:submit_form('<%=pageid-1%>')">
上一页 </a>
<%}if(pageid>=totalpage){%>
下一页 末页
<%}else{%>
<a href="javascript:submit_form('<%=pageid+1%>')"> 下一页</a> <a href="javascript:submit_form('<%=totalpage%>')">
末页 </a>
<%}%>
</td>
</tr>
</table>
</form>

</body>
</html>
<%@ include file="../init_free.jsp"%>
本课程详细讲解了以下内容:    1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程    2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例    3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题     4.session与cookie问题及application、cookie补充说明及四种范围对象作用域     5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别     6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据     7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)     8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析     9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)    1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)     11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet     12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题     13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove     14.过滤器、过滤器通配符、过滤器链、监听器     15.session绑定解绑、钝化活化     16.以及Ajax的各种应用     17. Idea环境下的Java Web开发

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧