<%
ResultSet rs=st.executeQuery("select * from jbsj where blzp is not null ");
while(rs.next())
{
%>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3>
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">督办科室</font></td>
<td width=500><b><%=rs.getString("jbks")%>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">发送时间</font></td>
<td width=500><b><%=rs.getString("jbsj")%>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">限期时间</font></td>
<td width=500><b><%=rs.getString("xqsj")%>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">完成时间</font></td>
<td width=500><b><%=rs.getString("wcsj")%>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">经办人</font></td>
<td width=500><b><%=rs.getString("jbr")%>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">事件名称</font></td>
<td width=500><b><%=rs.getString("sjmz")%>
</table> <table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3" width="575">
<tr><td bgcolor=#F3F3F3 width=51>
<font size="2">事件</td>
<td width=508><b>
<textarea name="sjgs" rows="8" cols="65" ><%=rs.getString("sjmc")%></textarea></table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3" width="576">
<tr><td bgcolor=#F3F3F3 width=48>
<font size="2">事件办理结果</td>
<td width=524><b>
<textarea name="sjgs0" rows="8" cols="63" ><%=rs.getString("bljg")%></textarea>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3" width="574">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">事件办理结果评价</td>
<td width=498><b><%=rs.getString("blzp")%>
</table>
</td>
<br>
<% } %>
需要把这个查询分页显示,有什么办法,谢谢各位大虾。小弟扣谢!最好能帮忙把代码加一下,谢谢
ResultSet rs=st.executeQuery("select * from jbsj where blzp is not null ");
while(rs.next())
{
%>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3>
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">督办科室</font></td>
<td width=500><b><%=rs.getString("jbks")%>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">发送时间</font></td>
<td width=500><b><%=rs.getString("jbsj")%>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">限期时间</font></td>
<td width=500><b><%=rs.getString("xqsj")%>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">完成时间</font></td>
<td width=500><b><%=rs.getString("wcsj")%>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">经办人</font></td>
<td width=500><b><%=rs.getString("jbr")%>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">事件名称</font></td>
<td width=500><b><%=rs.getString("sjmz")%>
</table> <table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3" width="575">
<tr><td bgcolor=#F3F3F3 width=51>
<font size="2">事件</td>
<td width=508><b>
<textarea name="sjgs" rows="8" cols="65" ><%=rs.getString("sjmc")%></textarea></table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3" width="576">
<tr><td bgcolor=#F3F3F3 width=48>
<font size="2">事件办理结果</td>
<td width=524><b>
<textarea name="sjgs0" rows="8" cols="63" ><%=rs.getString("bljg")%></textarea>
</table>
<table border=1 bordercolor=#0066CC bgcolor=#F3F3F3 id="table3" width="574">
<tr><td bgcolor=#F3F3F3 width=60>
<font size="2">事件办理结果评价</td>
<td width=498><b><%=rs.getString("blzp")%>
</table>
</td>
<br>
<% } %>
需要把这个查询分页显示,有什么办法,谢谢各位大虾。小弟扣谢!最好能帮忙把代码加一下,谢谢
select top 10 * from tablename where id not in (select top 10*4 id from tablename)
top10*4是显示第4页纪录
*
*/
package table;import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Vector;
/**
*
* <p>Title:分页的接口 </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: 北京东方国信电子有限公司</p>
* @author 卢兆满 2006-11-1
* @version 1.0
*/
public interface Page {/**
* getCurPage:
*
* @return int 返回当前的页数
*/
public int getCurPage();/**
* getPageSize:返回分页大小
*
* @return int
*/
public int getPageSize();/**
* getRowsCount:返回总记录行数
*
* @return int
*/
public int getTotalRows();/**
* getPageCount:返回总页数
*
* @return int
*/
public int getTotalPage();/**
* 第一页
* @return int
*/
public int first();/**
* 最后一页
* @return int
*/
public int last();/**
* 上一页
* @return int
*/
public int previous();/**
* 下一页
* @return int
*/
public int next();/**
* 第一页
* @return boolean
*/
public boolean isFirst();/**
* 最后一页
* @return boolean
*/
public boolean isLast();/**
* 获取当前页数据
* @return List
*/
public List getData();
/**
* @param curPage
* @return void
*/
public void setCurPage(int curPage);
/**
* @param data
* @return void
*/
public void setData(List data);/**
* @param pageSize
* @return void
*/
public void setPageSize(int pageSize);}
package table;import java.util.*;import javax.servlet.http.HttpServletRequest;/**
* <p>Title: 小数据量分页 </p>
* <p>Description: 由于一次性把数据都读到内存,所以适合的数据量不能太大 </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: 北京东方国信电子有限公司</p>
* @author 卢兆满 2006-11-1
* @version 1.0
*/
public class SmallPage implements Page{
/**
* 分页数据
*/
List data = null;/**
* 当前页
*/
int curPage;/**
* 每页显示的记录数
*/
int pageSize = 10;/**
* 记录行数
*/
int totalRows;/**
* 页数
*/
int totalPage;/**
* @param data
*/
public SmallPage(List data) {
this.data = data;
this.curPage = 1;this.totalRows = data.size();
this.totalPage = (int) Math.ceil((double) totalRows / pageSize);
}/**
* @param data
* @param curPage
*/
public SmallPage(List data, int curPage) {
this.data = data;
this.curPage = curPage;this.totalRows = data.size();
this.totalPage = (int) Math.ceil((double) totalRows / pageSize);
}/**
* @param data
* @param curPage
* @param pageSize
*/
public SmallPage(List data, int curPage, int pageSize) {
this.data = data;
this.curPage = curPage;
this.pageSize = pageSize;
this.totalRows = data.size();
this.totalPage = (int) Math.ceil((double) totalRows / pageSize);
}
/**
* @param request
* @param data
*/
public SmallPage(HttpServletRequest request,List data){
if(data !=null){
this.data = data;
this.curPage = request.getParameter("page")==null? 1: new Integer(request.getParameter("page")).intValue();this.totalRows = data.size();
this.totalPage = (int) Math.ceil((double) totalRows / pageSize);
}
}
/**
* @param request
* @param data
* @param pageSize
*/
public SmallPage(HttpServletRequest request,List data ,int pageSize){
if(data !=null){
this.data = data;
this.curPage = request.getParameter("page")==null? 1: new Integer(request.getParameter("page")).intValue();
this.pageSize = pageSize;
this.totalRows = data.size();
this.totalPage = (int) Math.ceil((double) totalRows / pageSize);
}
}/**
* getCurPage:
*
* @return int 返回当前的页数
*/
public int getCurPage() {
return curPage;
}/**
* getPageSize:返回分页大小
*
* @return int
*/public int getPageSize() {
return pageSize;
}/**
* gettotalRows:返回总记录行数
*
* @return int
*/public int getTotalRows() {
return totalRows;
}/**
* gettotalPage:返回总页数
*
* @return int
*/public int getTotalPage() {
return totalPage;
}/**
* 第一页
* @return int
*/public int first() {
return 1;
}/**
* 最后一页
* @return int
*/public int last() {
return totalPage;
}/**
* 上一页
* @return int
*/public int previous() {
return (curPage - 1 < 1) ? 1 : curPage - 1;
}/**
* 下一页
* @return int
*/public int next() {
return (curPage + 1 > totalPage) ? totalPage : curPage + 1;
}/**
* 第一页
* @return boolean
*/public boolean isFirst() {
return (curPage == 1) ? true : false;
}/**
* 最后一页
* @return boolean
*/
public boolean isLast() {
return (curPage == totalPage) ? true : false;
}/**
* 获取当前页数据
* @return List
*/
public List getData() {
ArrayList curData = null;
if (data != null) {
curData = new ArrayList();
int start = (curPage - 1) * pageSize;
int end = 0;
if (start + pageSize > totalRows)
end = totalRows;
else
end = start + pageSize;
for (int i = start; i < end; i++) {
//System.out.println(this.data.get(i)+"\tstart\\end:"+start+"\\"+end);
curData.add(this.data.get(i));
}
}
return curData;
}public void setCurPage(int curPage) {
this.curPage = curPage;
}public void setData(List data) {
this.data = data;
}/* (non-Javadoc)
* @see table.Page#setPageSize(int)
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
this.totalPage = (int) Math.ceil((double) totalRows / pageSize);
}
}
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: 北京东方国信电子有限公司</p>
* @author 卢兆满 2006-11-1
* @version 1.0
*/
public interface PageBar {
/**
* param @return
*/
public int getCurrentPage();
/**
* param @return
*/
public String getHTML();/**
* param @return
*/
public int getTotalPages();
/**
* param @return
*/
public int getTotalRows();}
/**
*
*/
package table;import javax.servlet.http.HttpServletRequest;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: 北京东方国信电子有限公司</p>
* @author 卢兆满 2006-11-1
* @version 1.0
*/
public class PageBarOne implements PageBar {
/** */
String url;/** */
int currentPage;/** */
int totalPages;/** */
int totalRows;/** */
private HttpServletRequest request;/**
* @param httpservletrequest
* @param pages
*/
public PageBarOne(HttpServletRequest httpservletrequest, Page pages){
request = httpservletrequest;
totalPages = pages.getTotalPage();
totalRows = pages.getTotalRows();
init();
}/* (non-Javadoc)
* @see table.PageBar#getCurrentPage()
*/
public int getCurrentPage() {
return currentPage;
}/* (non-Javadoc)
* @see table.PageBar#getHTML()
*/
public String getHTML() {
if (currentPage > totalPages)
currentPage = totalPages;
if (currentPage < 1)
currentPage = 1;
StringBuffer html = new StringBuffer("共");
html.append(totalRows);
html.append("项 第");
html.append(currentPage);
html.append("/");
html.append(totalPages);
html.append("页 ");if (currentPage == 1) {
html.append("<font color=#999999>首页 上页 </font>");
} else {
html.append("<a href=\"");
html.append(url);
html.append("page=1\">首页</a> <a href=\"");
html.append(url);
html.append("page=");
html.append(currentPage - 1);
html.append("\">上页</a> ");
}if (currentPage >= totalPages) {
html.append("<font color=#999999>下页 末页</font>");
} else {
html.append("<a href=\"");
html.append(url);
html.append("page=");
html.append(currentPage + 1);
html.append("\">下页</a> <a href=\"");
html.append(url);
html.append("page=");
html.append(totalPages);
html.append("\">末页</a>");
}
html.append(" <input name=\"pageNo\" type=\"text\" id=\"pageNo\" size=\"3\" onKeyPress=\"return handleEnterOnPageNo();\"> "
+ "<input name=\"goto\" type=\"button\" id=\"goto\" value=\"go\" onClick=\"forward();\">");
html.append("<script type = 'text/javaScript'>\r\n");
html.append("function forward()");
html.append("{");
html.append(" if(!(/^([-]){0,1}([0-9]){1,}$/.test(document.all.pageNo.value)))");
html.append("{");
html.append(" alert(\"请输入合法的页号!\");");
html.append(" document.all.pageNo.focus();");
html.append(" document.all.pageNo.select();");
html.append(" }");
html.append(" else");
html.append(" window.location.href=\"");
html.append(url);
html.append("page=\"+ document.all.pageNo.value;");html.append("}");
html.append("function handleEnterOnPageNo()");html.append("{");
html.append(" if(event.keyCode == 13)");
html.append(" {");
html.append(" forward();");html.append(" return false;");html.append(" }");
html.append(" return true;");
html.append("}");
html.append("</script>");
return html.toString();
}/* (non-Javadoc)
* @see table.PageBar#getTotalPages()
*/
public int getTotalPages() {
return totalPages;
}/* (non-Javadoc)
* @see table.PageBar#getTotalRows()
*/
public int getTotalRows() {
return totalRows;
}/**
* param @return
*/
public String getUrl() {
return url;
}/**
* param
*/
public void init() {currentPage = request.getParameter("page")==null? 1: new Integer(request.getParameter("page")) .intValue();String as[] = new String[] {"page", "totalrows"};
url = Common.getRequestURL(request, as);//如果url 中没有? 就在末尾加上?
if(url.indexOf("?")==-1)
url+="?";
//如果url中的? 在末尾就不加& 不在末尾就加&
if(url.indexOf("?")==url.length()-1)
url = url + new StringBuffer("totalrows=").append(totalRows).append("&").toString();
else{
url = url + new StringBuffer("&totalrows=").append(totalRows).append("&").toString();
}
}/**
* param @param i
*/
public void setCurrentPage(int i) {
currentPage = i;
}/**
* param @param i
*/
public void setTotalPages(int i) {
totalPages = i;
}/**
* param @param i
*/
public void setTotalRows(int i) {
totalRows = i;
}/**
* param @param s
*/
public void setUrl(String s) {
url = s;
}
}package table;import java.io.IOException;
import java.io.Writer;
import javax.servlet.ServletRequest;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.TagSupport;public class PageBarTag extends TagSupport {/** */
private PageBar pageBar;/** */
private String pageBarName;/**
*
*/
public PageBarTag() {
pageBar = null;
}/* (non-Javadoc)
* @see javax.servlet.jsp.tagext.TagSupport#doEndTag()
*/
public int doEndTag() throws JspException {
String s = pageBar.getHTML();
try {
pageContext.getOut().write(s);
} catch (IOException e) {
throw new JspException("构造页面导航是IOerror:" + e.getMessage());
}
return 6;
}/* (non-Javadoc)
* @see javax.servlet.jsp.tagext.TagSupport#doStartTag()
*/
public int doStartTag() throws JspException {
if (pageBar != null) {
return super.EVAL_BODY_INCLUDE;
} else
throw new JspException("页面导航对象不能为空");
}/**
* param @return
*/
public String getPageBarName() {
return pageBarName;
}/**
* param @param pageBarName
*/
public void setPageBarName(String pageBarName) {
this.pageBarName = pageBarName;
this.pageBar = (PageBar) pageContext.getRequest().getAttribute(
this.pageBarName);
}}
test-table.tld<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>test</shortname>
<uri>/WEB-INF/test-table</uri><tag>
<name>pageBar</name>
<tagclass>table.PageBarTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>pageBarName</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
web.xml<taglib>
<taglib-uri>/WEB-INF/test_table.tld</taglib-uri>
<taglib-location>/WEB-INF/test_table.tld</taglib-location>
</taglib>actionPage page = new SmallPage(request, list);
PageBar pageBar = new PageBarOne(request, page);
List outList = page.getData() // 这个是此叶输出的Listrequest.setAttribute("pageBar", pageBar);
request.setAttribute("outList ", outList );jsp
<%@taglib uri="/WEB-INF/test_table.tld" prefix="test"%>
//循环输出outList<test:pageBar pageBarName="pageBar"></test:pageBar>
package com.ly.common; //改为自己的路径import java.sql.*;public class SplitPageService
{
//定义类中用的一些成员变量
private int CurrentPage = 0;
private static int PageSize = 10;
private int RecordCount = 0;
private int TotalPages = 0;
private StringBuffer mobjBuffer = null;
private int mintFlag = 0;
public SplitPageService()
{
mobjBuffer = new StringBuffer();
}
public void setCurrentPage(String currPage)
{
if((currPage==null)||(currPage.equals(""))||currPage.equals("0")||(!currPage.matches("^[0-9]*$")))
{
CurrentPage = 1;
}
else
{
CurrentPage = Integer.parseInt(currPage);
}
}
//计算当前页数
private void getTotalPage()
{
if (RecordCount == 0)
TotalPages = 0;
else
TotalPages = ((RecordCount % PageSize == 0)?(RecordCount / PageSize):(RecordCount / PageSize + 1));
}
public ResultSet initResultSet(ResultSet pobjRs) throws SQLException
{
if ((pobjRs != null) && (pobjRs.next()))
{
pobjRs.last();
RecordCount = pobjRs.getRow();
this.getTotalPage();
CurrentPage = (TotalPages == 0?1:(CurrentPage<= TotalPages?CurrentPage:TotalPages));
pobjRs.absolute(((CurrentPage - 1)*PageSize)+1);
mintFlag = 1;
}
else
{
RecordCount = 0;
mintFlag = 0;
CurrentPage = 0;
}
return pobjRs;
}
public int RecordCount()
{
return this.mintFlag;
}
//返回分页信息
public String getFooter(String pageUrl)
{
int pintPos = 0;
String pstrTemp = pageUrl;
/*
pintPos = pstrTemp.indexOf("?");
String pstrParam = null;
if(pintPos !=-1)
{
//说明没有类别
//得到当前页面的URL
pageUrl = pstrTemp.substring(0,pintPos);
//得到URL后面带的参数
pstrParam = pstrTemp.substring(pintPos+1);
}
*/
String pstrParam = pageUrl;
mobjBuffer = new StringBuffer(); //添加Table
mobjBuffer.append("<table cellSpacing='0' cellPadding='3' width='100%' align='center' border='0'>\n");
mobjBuffer.append("<form name='frmSkip' action='");
mobjBuffer.append(pageUrl);
mobjBuffer.append("' ");
mobjBuffer.append("Method='POST' >\n");
mobjBuffer.append("\n<input type='hidden' name='BiaoShi' value='3'>");
mobjBuffer.append("\n<input type='hidden' name='Skip' value='Skip'>\n");
mobjBuffer.append("<tbody>\n");
mobjBuffer.append("<tr class='BgTdBottomGray'>\n");
mobjBuffer.append("<td align='right' height=\"19\">\n");
mobjBuffer.append("本栏目共有<font color='red'>");
mobjBuffer.append(RecordCount);
mobjBuffer.append("</font>记录 ");
mobjBuffer.append("页数<font color='red'>");
mobjBuffer.append(CurrentPage + "/" +TotalPages);
mobjBuffer.append("</font>页 ");
if (CurrentPage > 1)
{
if(pageUrl.indexOf("?")!=-1)
{
mobjBuffer.append("<a Href='");
mobjBuffer.append(pageUrl);
mobjBuffer.append("&Page=");
mobjBuffer.append(CurrentPage - 1);
mobjBuffer.append("'>上一页</a> ");
}
else
{
mobjBuffer.append("<a Href='");
mobjBuffer.append(pageUrl);
mobjBuffer.append("?Page=");
mobjBuffer.append(CurrentPage - 1);
mobjBuffer.append("'>上一页</a> ");
}
}
else
{
mobjBuffer.append("上一页 ");
}
if(CurrentPage < TotalPages)
{
if(pageUrl.indexOf("?")!=-1)
{
mobjBuffer.append("<a Href='");
mobjBuffer.append(pageUrl);
mobjBuffer.append("&Page=");
mobjBuffer.append(CurrentPage + 1);
}
else
{
mobjBuffer.append("<a Href='");
mobjBuffer.append(pageUrl);
mobjBuffer.append("?Page=");
mobjBuffer.append(CurrentPage + 1);
}
mobjBuffer.append("'>下一页</a> ");
}
else
{
mobjBuffer.append("下一页 \n");
}
mobjBuffer.append("\n跳转 <input type=text name='Page' class='textinput' style=\"width:35px;\"> ");
mobjBuffer.append("\n<input type='submit' value='跳转' class='button2'>\n");
mobjBuffer.append("</td>\n");
mobjBuffer.append("</tr>\n");
mobjBuffer.append("</tbody>\n");
mobjBuffer.append("</form>\n");
//结束Table
mobjBuffer.append("</table>\n"); return mobjBuffer.toString();
}
//返回查询分页信息
public String getSearchFooter(String pageUrl)
{
int pintPos = 0;
String pstrTemp = pageUrl;
String pstrParam = null;
if(pintPos !=-1)
{
pstrParam = pstrTemp.substring(pintPos+1);
}
mobjBuffer = new StringBuffer(); //添加Table
mobjBuffer.append("<table cellSpacing='0' cellPadding='3' width='97.5%' align='center' border='0'>\n");
mobjBuffer.append("<form name='frmSkip' action='");
mobjBuffer.append(pageUrl);
mobjBuffer.append("' ");
mobjBuffer.append("Method='POST' >\n");
mobjBuffer.append("\n<input type='hidden' name='BiaoShi' value='3'>");
mobjBuffer.append("\n<input type='hidden' name='Skip' value='Skip'>\n");
mobjBuffer.append("<tbody>\n");
mobjBuffer.append("<tr class='BgTdBottomGray'>\n");
mobjBuffer.append("<td align='right' height=\"26\">\n"); mobjBuffer.append("本栏目共有<font color='red'>");
mobjBuffer.append(RecordCount);
mobjBuffer.append("</font>记录 ");
mobjBuffer.append("页数<font color='red'>");
mobjBuffer.append(CurrentPage + "/" +TotalPages);
mobjBuffer.append("</font>页 ");
if (CurrentPage > 1)
{
mobjBuffer.append("<a Href='");
mobjBuffer.append(pageUrl);
mobjBuffer.append("&Page=");
mobjBuffer.append(CurrentPage - 1);
mobjBuffer.append("'>上一页</a> ");
}
else
{
mobjBuffer.append("上一页 ");
}
if(CurrentPage < TotalPages)
{
mobjBuffer.append("<a Href='");
mobjBuffer.append(pageUrl);
mobjBuffer.append("&Page=");
mobjBuffer.append(CurrentPage + 1);
mobjBuffer.append("'>下一页</a> ");
}
else
{
mobjBuffer.append("下一页 \n");
}
mobjBuffer.append("\n跳转 <input type=text name='Page' class='textinput' style=\"width:35px;\"> ");
mobjBuffer.append("\n<input type='submit' value='跳转' class='button2'>\n");
mobjBuffer.append("</td>\n");
mobjBuffer.append("</tr>\n");
mobjBuffer.append("</tbody>\n");
mobjBuffer.append("</form>\n");
//结束Table
mobjBuffer.append("</table>\n"); return mobjBuffer.toString();
}
}
不过要注意:oralce 和sqlserver的分页sql语句是不同的。
在java代码的算法里面做文章
/**
* 版权所有 吉林省千龙网络有限公司 2000-2006
*
* PaginationObject.java 2006-03-27
*
*/import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;import org.apache.log4j.Logger;/**
* 用于生成显示时每一页要显示的若干对象,也用于返回总的对象数。
* 用法:构造函数中,参数tableName是要显示的数据表名,limit为查询表的限制条件,如"where id=1"。
* 然后建立一个属性对应表的类JavaBean(注:Bean中的属性要求为public!),并把这个Bean的对象
* 作为第一个参数传给findAllEmp函数。
*
* @author
*
* @version 1.2
*
*/
public class PaginationObject
{ /*-----------------------------实例变量------------------------------------*/ private Logger log = Logger.getLogger(PaginationObject.class.getName()); /*-----------------------------私有属性------------------------------------*/ private Object tableObj = null; private String tableName = null; private String limit = ""; /*-----------------------------构造函数------------------------------------*/ public PaginationObject(String tableName, String limit)
{
this.tableName = tableName;
this.limit = limit;
} /*-----------------------------公有方法------------------------------------*/ /**
* 得到包含有数据的代表表的对象的一个ArrayList
*
* @param obj
* 用来保存一行数据的对象
* @param offset
* 起始记录的位置
* @param length
* 步长
* @return
* @throws Exception
*/ public ArrayList getPageObjects(Object obj, int offset, int length)
throws Exception
{
DBConnection dbc = new DBConnection();
ArrayList emps = new ArrayList();
ResultSet rs = null;
String tmp = "";
String sql = null;
tableObj = obj;
int countRows = 0;
Field[] fieldName_t = tableObj.getClass().getFields();
ArrayList fieldName = new ArrayList();
for (int i = 0; i < fieldName_t.length; i++)
{
fieldName.add(new String(fieldName_t[i].getName()));
System.out.println(fieldName.get(i));
}
for (int i = 0; i < fieldName.size(); i++)
tmp = tmp + fieldName.get(i) + ",";
tmp = tmp.substring(0, tmp.length() - 1);
sql = "select " + tmp + " from " + tableName + " " + limit;
log.info(sql); rs = dbc.executeQuery(sql);
rsHandler(rs, offset);
try
{
if (rs != null && rs.next())
{
do
{
emps.add(RS2AL(rs));
} while ((++countRows < length) && rs.next());
}
} catch (Exception e)
{
log.info(e);
dbc.destroy();
}
dbc.destroy();
return emps;
} /**
* 将每一行数据添加到一个代表表的对象中
*
* @param rs
* @return
*/
public Object RS2AL(ResultSet rs)
{
Object[] objArray = new Object[1];
Field[] fieldName_t = tableObj.getClass().getFields();
Method[] methodName_t = tableObj.getClass().getMethods();
ArrayList fieldName = new ArrayList();
ArrayList methodName = new ArrayList();
ArrayList setMethod = new ArrayList();
Object objtmp = null;
String tmp1 = null;
String tmp2 = null; for (int i = 0; i < fieldName_t.length; i++)
{
fieldName.add(new String(fieldName_t[i].getName()));
}
for (int i = 0; i < methodName_t.length; i++)
{
methodName.add(new String(methodName_t[i].getName()));
}
for (int i = 0; i < fieldName.size(); i++)
setMethod.add(new String("set" + fieldName.get(i)));
try
{
objtmp = tableObj.getClass().newInstance();
for (int i = 0; i < setMethod.size(); i++)
for (int j = 0; j < methodName.size(); j++)
{
tmp1 = methodName_t[j].getName().toLowerCase();
tmp2 = setMethod.get(i).toString().toLowerCase();
if (tmp1.contains(tmp2))
{
objArray[0] = new String(rs.getString(fieldName.get(i)
.toString()));
methodName_t[j].invoke(objtmp, objArray);
}
}
} catch (Exception e)
{
log.info(e);
}
return objtmp;
} /**
* 返回总的记录数
*
* @throws Exception
* @return int
*/
public int getRsTotalCount() throws Exception
{
DBConnection dbc = new DBConnection();
ResultSet rs = null;
int rsCount = 0;
String strSql = "select count(*) as Count from " + tableName + " "
+ limit;
try
{
rs = dbc.executeQuery(strSql);
if (rs != null && rs.next())
{
rsCount = rs.getInt("Count");
}
} catch (SQLException ex)
{
dbc.destroy();
ex.printStackTrace();
throw ex;
}
dbc.destroy();
return rsCount;
} /**
* 移动结果集中的读取指针到指定的位置
*
* @param rs
* @param offset
*/
private void rsHandler(ResultSet rs, int offset)
{
try
{
rs.absolute(-1);
if (offset <= 0)
{
rs.beforeFirst();
} else
{
rs.absolute(offset);
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}
* 计算生成分页用的导航条,例如:[上一页]1 2 3 4 5[下一页]。
*
* @author
*
* @version 1.2
*
*/
public class PaginationNavigation
{ /*-----------------------------私有属性------------------------------------*/ private int offset; private int size; private int length; private int count; private String url; private String pageHeader; /*-----------------------------构造函数------------------------------------*/ /**
*
* @param offset
* 起始记录的位置
* @param size
* 总记录数
* @param length
* 步长
* @param url
* 链接
* @param pageHeader
* 导航条的前缀文字提示
*/
public PaginationNavigation(int offset, int size, int length, String url,
String pageHeader)
{
this.offset = offset;
this.size = size;
this.length = length;
this.url = url;
this.pageHeader = pageHeader;
this.count = pageCount();
} /**
* 返回分页导航条
*
* @return String
*/
public String getPageNavigation()
{
String pageNavigation = ""; // 最终返回的分页导航条 // 记录数超过一页,需要分页
if (size > length)
{ String pref = null; // 前缀
if (url.indexOf("?") > -1)
{
// 如果url中已经包含了其他的参数,就把offset参数接在后面
pref = "&";
} else
{
// 如果url中没有别的参数
pref = "?";
} // 如果导航条包含header
if (pageHeader != null && pageHeader.length() > 0)
{
pageNavigation = pageHeader + " : ";
} // 如果不是第一页,导航条将包含“<<”(第一页)和“<”(前一页)
if (offset > 0)
{
pageNavigation += "<a href='" + url + pref
+ "offset=0'>[首页]</a>\n" + "<a href='" + url + pref
+ "offset=" + (offset - length) + "'>[上一页]</a>\n";
} else
{
pageNavigation += "[首页][上一页]";
} // 导航条中,排头的那一页的offset值
int startOffset;
// 位于导航条中间的那一页的offset值(半径)
int radius = Constants.MAX_PAGE_INDEX / 2 * length; // 如果当前的offset值小于半径
if (offset < radius || this.pageCount() <= Constants.MAX_PAGE_INDEX)
{
// 那么第一页排头
startOffset = 0;
} else if (offset < size - radius)
{
// 起始页已大于半径,导航条显示的第一个页码要改变,如<2,3,4,5,6>
startOffset = offset - radius;
} else
{
// 导航条到最后几页不能把选中页放在中间,要特殊调整,如<45678>,选7后还是<45678>
startOffset = (size / length - Constants.MAX_PAGE_INDEX + 1)
* length;
}
for (int i = startOffset; i < size
&& i < startOffset + Constants.MAX_PAGE_INDEX * length; i += length)
{
if (i == offset)
{
// 当前页号,加粗显示
pageNavigation += "<b>" + (i / length + 1) + "</b>\n";
} else
{
// 其他页号,包含超链接
pageNavigation += "<a href='" + url + pref + "offset=" + i
+ "'>" + (i / length + 1) + "</a>\n";
}
}
// 如果不是最后一页,导航条将包含“>”(下一页)和“>>”(最后一页)
if (offset < size - length)
{
pageNavigation += "<a href='" + url + pref + "offset="
+ (offset + length) + "'>[下一页]</a>\n" + "<a href='"
+ url + pref + "offset=" + lastPageOffset()
+ "'>[尾页]</a>\n";
} else
{
pageNavigation += "[下一页][尾页]";
}
return pageNavigation;
}
// 记录不超过一页,不需要分页
else
{
return "";
}
} /**
* 返回分页后的总页数
*
* @return int
*/
public int pageCount()
{
int pagecount = 0;
if (size % length == 0)
{
pagecount = size / length;
} else
{
pagecount = size / length + 1;
}
return pagecount;
} /**
* 返回最后一页的记录数
*
* @return int
*/
public int lastPageSize()
{
int lastpagesize = 0;
if (size % length == 0)
{
lastpagesize = length;
} else
{
lastpagesize = size % length;
}
return lastpagesize;
} /**
* 返回最后一页的起始记录位置
*
* @return int
*/
public int lastPageOffset()
{
return size - lastPageSize();
} public int getOffset()
{
return offset;
} public void setOffset(int offset)
{
this.offset = offset;
} public int getSize()
{
return size;
} public void setSize(int size)
{
this.size = size;
} public int getLength()
{
return length;
} public void setLength(int length)
{
this.length = length;
} public int getCount()
{
return count;
} public String getUrl()
{
return url;
} public void setUrl(String url)
{
this.url = url;
} public String getPageHeader()
{
return pageHeader;
} public void setPageHeader(String pageHeader)
{
this.pageHeader = pageHeader;
}
}
用JavaScript写点翻页的方法。
你要每页显示几条pageSize
就能得到 总页数 pageCount =(recordCount +pageSize-1)/pageSize然后可以调用baobao28(阿呆) 的topsql 语句查寻了
用SQL语句分页怎么确定上一页和下一页。怎么写?-------------------------------------------sql语句只知道显示第几页就好了,上一页下一页是第几页 自己来算
把这里大家帮助别人都是无私的,而你呢,却把别人的回答整理出来卖钱~~~~~~
哎,以后谁还愿意帮助你啊