• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

纯JSP分页代码之sqlserver2005/2008

mysql 搞代码 4年前 (2022-01-09) 18次浏览 已收录 0个评论

昨天看到一篇《 纯JSP分页代码 》的文章,是用于mysql,稍微修改下,用于Sqlserver2005/2008,没有异常处理。没有考虑性能等。 现将代码贴出,以供初学者参考: 注:邀月使用环境Eclipse 3.4.2+Tomcat 6.18+Sqlserver2005 sp3调试成功。 页面pagelistDemo.js

昨天看到一篇《纯JSP分页代码》的文章,是用于mysql,稍微修改下,用于Sqlserver2005/2008,没有异常处理。没有考虑性能等。

现将代码贴出,以供初学者参考:

注:邀月使用环境Eclipse 3.4.2+Tomcat 6.18+Sqlserver2005 sp3调试成功。

页面pagelistDemo.jsp内容:

Code
<%@ page language=java contentType=text/html; charset=UTF-8
pageEncoding
=UTF-8%>
<%
//连接字符串
String url = jdbc:sqlserver:// + Globals.Server
+ ;databaseName= + Globals.DbName;
Class.forName(Globals.driverName).newInstance();
Connection connection
= DriverManager.getConnection(url,
Globals.username, Globals.pwd);
Statement statement
= connection.createStatement();

//本文来源gao@!dai!ma.com搞$$代^@码5网@页显示记录数
int PageSize = 10;
int StartRow = 0; //开始显示记录的编号
int PageNo = 0;//需要显示的页数
int CounterStart = 0;//每页页码的初始值
int CounterEnd = 0;//显示页码的最大值
int RecordCount = 0;//总记录数;
int MaxPage = 0;//总页数
int PrevStart = 0;//前一页
int NextPage = 0;//
int LastRec = 0;
int LastStartRecord = 0;//最后一页开始显示记录的编号

//获取需要显示的页数,由用户提交
if (request.getParameter(PageNo) == null) { //如果为空,则表示第1页
if (StartRow == 0) {
PageNo
= StartRow + 1; //设定为1
}

}
else {
PageNo
= Integer.parseInt(request.getParameter(PageNo)); //获得用户提交的页数
StartRow = (PageNo 1) * PageSize; //获得开始显示的记录编号
}

//因为显示页码的数量是动态变化的,假如总共有一百页,则不可能同时显示100个链接。而是根据当前的页数显示
//一定数量的页面链接

//设置显示页码的初始值!!
if (PageNo % PageSize == 0) {
CounterStart
= PageNo (PageSize 1);
}
else {
CounterStart
= PageNo (PageNo % PageSize) + 1;
}

CounterEnd = CounterStart + (PageSize 1);
%>
<!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd>

<%@page import=net.data.util.Globals%>
<%@page import=java.sql.ResultSet%>
<%@page import=java.sql.DriverManager%>
<%@page import=java.sql.Connection%>
<%@page import=java.sql.Statement%>
<element>
<html>
<head>
<meta httpequiv=Content-Type content=text/html; charset=UTF-8>
<title>分页显示记录</title>
<link rel=stylesheet href=style.css type=text/css>
</head>
<%
//获取总记录数
ResultSet rs = statement
.executeQuery(
select count(P_ID) from product);
rs.next();
RecordCount
= rs.getInt(1);

//取特定页数的数据
String strColumn = P_ID,P_Name,LoginID,modTime,P_SingleIntro ;
String strTable
= Product ;
String strSort
= p_ID desc ;
String PKID
= P_ID;
String strSql
= “”;
String strWhere
= “”;
String START_ID
= Integer.toString((PageNo 1) * PageSize + 1);
String END_ID
= Integer.toString(PageNo * PageSize);
strSql
= SELECT + strColumn
+ FROM (SELECT ROW_NUMBER() OVER(ORDER BY + strSort
+ ) AS rownum, + strColumn + FROM + strTable
+ WITH(NOLOCK) + strWhere
+ ) AS D WHERE rownum BETWEEN + START_ID + AND
+ END_ID + ORDER BY + strSort;
rs
= statement.executeQuery(strSql);

//获取总页数
MaxPage = RecordCount % PageSize;
if (RecordCount % PageSize == 0) {
MaxPage
= RecordCount / PageSize;
}
else {
MaxPage
= RecordCount / PageSize + 1;
}

%>
<body class=UsePageBg>
<table width=100% border=0 class=InternalHeader>
<tr>
<td width=24%><font size=4>分页显示记录</font></td>
<td width=76%><font size=4><%=总共 + RecordCount + 条记录 – 当前页: + PageNo + /
+ MaxPage%></font></td>
</tr>
</table>

<br>
<table width=100% border=0 class=NormalTableTwo>
<tr>
<td class=InternalHeader>记录序号</td>
<td class=InternalHeader>数据标识号</td>
<td class=InternalHeader>产品名称</td>
<td class=InternalHeader>作者</td>
<td class=InternalHeader>提交时间</td>
<td class=InternalHeader>简介</td>
</tr>

<%
long i = 1;
while (rs.next()) {
long bil = i + (PageNo 1) * PageSize;
%>
<tr>
<td class=NormalFieldTwo><%=bil%></td>
<td class=NormalFieldTwo><%=rs.getString(1)%></td>
<td class=NormalFieldTwo><%=rs.getString(2)%></td>
<td class=NormalFieldTwo><%=rs.getString(3)%></td>
<td class=NormalFieldTwo><%=rs.getString(4)%></td>
<td class=NormalFieldTwo><%=rs.getString(5)%></td>
</tr>
<%
i
++;
}

%>
</table>
<br>
<table width=100% border=0 class=InternalHeader>
<tr>
<td>
<div align=center>
<%
out.print(
);
//显示第一页或者前一页的链接
//如果当前页不是第1页,则显示第一页和前一页的链接
if (PageNo != 1) {
PrevStart
= PageNo 1;
out.print(
第一页 : );
out.print(
+ PrevStart
+ >前一页);
}

out.print(
[);

//打印需要显示的页码
for (int c = CounterStart; c <= CounterEnd; c++) {
if (c < MaxPage) {
if (c == PageNo) {
if (c % PageSize == 0) {
out.print(c);
}
else {
out.print(c
+ ,);
}

}
else if (c % PageSize == 0) {
out.print(
+ c + > + c
+ );
<img src="/inc/test.jsp?url=http%3A%2F%2Fwww.cnblogs.com%2FImages%2FOutliningIndi


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:纯JSP分页代码之sqlserver2005/2008

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址