Home > Database > Mysql Tutorial > 纯JSP分页代码之sqlserver2005/2008

纯JSP分页代码之sqlserver2005/2008

WBOY
Release: 2016-06-07 15:39:30
Original
1280 people have browsed it

昨天看到一篇《 纯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内容:

纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008Code
纯JSP分页代码之sqlserver2005/2008@ page language="java" contentType="text/html; charset=UTF-8"
纯JSP分页代码之sqlserver2005/2008    pageEncoding
="UTF-8"%>
纯JSP分页代码之sqlserver2005/2008

纯JSP分页代码之sqlserver2005/2008    
//连接字符串
纯JSP分页代码之sqlserver2005/2008
    String url = "jdbc:sqlserver://" + Globals.Server
纯JSP分页代码之sqlserver2005/2008            
+ ";databaseName=" + Globals.DbName;
纯JSP分页代码之sqlserver2005/2008    Class.forName(Globals.driverName).newInstance();
纯JSP分页代码之sqlserver2005/2008    Connection connection 
= DriverManager.getConnection(url,
纯JSP分页代码之sqlserver2005/2008            Globals.username, Globals.pwd);
纯JSP分页代码之sqlserver2005/2008    Statement statement 
= connection.createStatement();
纯JSP分页代码之sqlserver2005/2008
纯JSP分页代码之sqlserver2005/2008    
//每页显示记录数
纯JSP分页代码之sqlserver2005/2008
    int PageSize = 10;
纯JSP分页代码之sqlserver2005/2008    
int StartRow = 0//开始显示记录的编号
纯JSP分页代码之sqlserver2005/2008
    int PageNo = 0;//需要显示的页数
纯JSP分页代码之sqlserver2005/2008
    int CounterStart = 0;//每页页码的初始值
纯JSP分页代码之sqlserver2005/2008
    int CounterEnd = 0;//显示页码的最大值
纯JSP分页代码之sqlserver2005/2008
    int RecordCount = 0;//总记录数;
纯JSP分页代码之sqlserver2005/2008
    int MaxPage = 0;//总页数
纯JSP分页代码之sqlserver2005/2008
    int PrevStart = 0;//前一页
纯JSP分页代码之sqlserver2005/2008
    int NextPage = 0;//
纯JSP分页代码之sqlserver2005/2008
    int LastRec = 0;
纯JSP分页代码之sqlserver2005/2008    
int LastStartRecord = 0;//最后一页开始显示记录的编号
纯JSP分页代码之sqlserver2005/2008
纯JSP分页代码之sqlserver2005/2008    
//获取需要显示的页数,由用户提交
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008
    if (request.getParameter("PageNo"== null纯JSP分页代码之sqlserver2005/2008//如果为空,则表示第1页
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008
        if (StartRow == 0纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008            PageNo 
= StartRow + 1//设定为1
纯JSP分页代码之sqlserver2005/2008
        }

纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008    }
 else 纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008        PageNo 
= Integer.parseInt(request.getParameter("PageNo")); //获得用户提交的页数
纯JSP分页代码之sqlserver2005/2008
        StartRow = (PageNo - 1* PageSize; //获得开始显示的记录编号
纯JSP分页代码之sqlserver2005/2008
    }

纯JSP分页代码之sqlserver2005/2008
纯JSP分页代码之sqlserver2005/2008    
//因为显示页码的数量是动态变化的,假如总共有一百页,则不可能同时显示100个链接。而是根据当前的页数显示
纯JSP分页代码之sqlserver2005/2008    
//一定数量的页面链接
纯JSP分页代码之sqlserver2005/2008
纯JSP分页代码之sqlserver2005/2008    
//设置显示页码的初始值!!
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008
    if (PageNo % PageSize == 0纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008        CounterStart 
= PageNo - (PageSize - 1);
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008    }
 else 纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008        CounterStart 
= PageNo - (PageNo % PageSize) + 1;
纯JSP分页代码之sqlserver2005/2008    }

纯JSP分页代码之sqlserver2005/2008
纯JSP分页代码之sqlserver2005/2008    CounterEnd 
= CounterStart + (PageSize - 1);
纯JSP分页代码之sqlserver2005/2008
%>
纯JSP分页代码之sqlserver2005/2008
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
纯JSP分页代码之sqlserver2005/2008
纯JSP分页代码之sqlserver2005/2008
@page import="net.data.util.Globals"%>
纯JSP分页代码之sqlserver2005/2008
@page import="java.sql.ResultSet"%>
纯JSP分页代码之sqlserver2005/2008
@page import="java.sql.DriverManager"%>
纯JSP分页代码之sqlserver2005/2008
@page import="java.sql.Connection"%>
纯JSP分页代码之sqlserver2005/2008
@page import="java.sql.Statement"%>
纯JSP分页代码之sqlserver2005/2008
element>
纯JSP分页代码之sqlserver2005/2008
html>
纯JSP分页代码之sqlserver2005/2008
head>
纯JSP分页代码之sqlserver2005/2008
meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
纯JSP分页代码之sqlserver2005/2008
title>分页显示记录title>
纯JSP分页代码之sqlserver2005/2008
link rel="stylesheet" href="style.css" type="text/css">
纯JSP分页代码之sqlserver2005/2008
head>
纯JSP分页代码之sqlserver2005/2008

纯JSP分页代码之sqlserver2005/2008    
//获取总记录数
纯JSP分页代码之sqlserver2005/2008
    ResultSet rs = statement
纯JSP分页代码之sqlserver2005/2008            .executeQuery(
"select count(P_ID) from product");
纯JSP分页代码之sqlserver2005/2008    rs.next();
纯JSP分页代码之sqlserver2005/2008    RecordCount 
= rs.getInt(1);
纯JSP分页代码之sqlserver2005/2008
纯JSP分页代码之sqlserver2005/2008    
//取特定页数的数据
纯JSP分页代码之sqlserver2005/2008
    String strColumn = " P_ID,P_Name,LoginID,modTime,P_SingleIntro ";
纯JSP分页代码之sqlserver2005/2008    String strTable 
= " Product ";
纯JSP分页代码之sqlserver2005/2008    String strSort 
= "  p_ID desc ";
纯JSP分页代码之sqlserver2005/2008    String PKID 
= "P_ID";
纯JSP分页代码之sqlserver2005/2008    String strSql 
= "";
纯JSP分页代码之sqlserver2005/2008    String strWhere 
= "";
纯JSP分页代码之sqlserver2005/2008    String START_ID 
= Integer.toString((PageNo - 1* PageSize + 1);
纯JSP分页代码之sqlserver2005/2008    String END_ID 
= Integer.toString(PageNo * PageSize);
纯JSP分页代码之sqlserver2005/2008    strSql 
= " SELECT " + strColumn
纯JSP分页代码之sqlserver2005/2008            
+ " FROM (SELECT ROW_NUMBER() OVER(ORDER BY " + strSort
纯JSP分页代码之sqlserver2005/2008            
+ ") AS rownum," + strColumn + "  FROM " + strTable
纯JSP分页代码之sqlserver2005/2008            
+ " WITH(NOLOCK) " + strWhere
纯JSP分页代码之sqlserver2005/2008            
+ ") AS D  WHERE rownum BETWEEN " + START_ID + " AND "
纯JSP分页代码之sqlserver2005/2008            
+ END_ID + " ORDER BY " + strSort;
纯JSP分页代码之sqlserver2005/2008    rs 
= statement.executeQuery(strSql);
纯JSP分页代码之sqlserver2005/2008
纯JSP分页代码之sqlserver2005/2008    
//获取总页数
纯JSP分页代码之sqlserver2005/2008
    MaxPage = RecordCount % PageSize;
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008    
if (RecordCount % PageSize == 0纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008        MaxPage 
= RecordCount / PageSize;
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008    }
 else 纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008        MaxPage 
= RecordCount / PageSize + 1;
纯JSP分页代码之sqlserver2005/2008    }

纯JSP分页代码之sqlserver2005/2008
%>
纯JSP分页代码之sqlserver2005/2008
body class="UsePageBg">
纯JSP分页代码之sqlserver2005/2008
table width="100%" border="0" class="InternalHeader">
纯JSP分页代码之sqlserver2005/2008    
tr>
纯JSP分页代码之sqlserver2005/2008        
td width="24%">font size=4>分页显示记录font>td>
纯JSP分页代码之sqlserver2005/2008        
td width="76%">font size=4>"总共" + RecordCount + "条记录 - 当前页:" + PageNo + "/"
纯JSP分页代码之sqlserver2005/2008                    
+ MaxPage%>font>td>
纯JSP分页代码之sqlserver2005/2008    
tr>
纯JSP分页代码之sqlserver2005/2008
table>
纯JSP分页代码之sqlserver2005/2008
纯JSP分页代码之sqlserver2005/2008
br>
纯JSP分页代码之sqlserver2005/2008
table width="100%" border="0" class="NormalTableTwo">
纯JSP分页代码之sqlserver2005/2008    
tr>
纯JSP分页代码之sqlserver2005/2008        
td class="InternalHeader">记录序号td>
纯JSP分页代码之sqlserver2005/2008        
td class="InternalHeader">数据标识号td>
纯JSP分页代码之sqlserver2005/2008        
td class="InternalHeader">产品名称td>
纯JSP分页代码之sqlserver2005/2008        
td class="InternalHeader">作者td>
纯JSP分页代码之sqlserver2005/2008        
td class="InternalHeader">提交时间td>
纯JSP分页代码之sqlserver2005/2008        
td class="InternalHeader">简介td>
纯JSP分页代码之sqlserver2005/2008    
tr>
纯JSP分页代码之sqlserver2005/2008
纯JSP分页代码之sqlserver2005/2008    

纯JSP分页代码之sqlserver2005/2008        
long i = 1;
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008        
while (rs.next()) 纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008            
long bil = i + (PageNo - 1* PageSize;
纯JSP分页代码之sqlserver2005/2008    
%>
纯JSP分页代码之sqlserver2005/2008    
tr>
纯JSP分页代码之sqlserver2005/2008        
td class="NormalFieldTwo">bil%>td>
纯JSP分页代码之sqlserver2005/2008        
td class="NormalFieldTwo">rs.getString(1)%>td>
纯JSP分页代码之sqlserver2005/2008        
td class="NormalFieldTwo">rs.getString(2)%>td>
纯JSP分页代码之sqlserver2005/2008        
td class="NormalFieldTwo">rs.getString(3)%>td>
纯JSP分页代码之sqlserver2005/2008        
td class="NormalFieldTwo">rs.getString(4)%>td>
纯JSP分页代码之sqlserver2005/2008        
td class="NormalFieldTwo">rs.getString(5)%>td>
纯JSP分页代码之sqlserver2005/2008    
tr>
纯JSP分页代码之sqlserver2005/2008    

纯JSP分页代码之sqlserver2005/2008        i
++;
纯JSP分页代码之sqlserver2005/2008        }

纯JSP分页代码之sqlserver2005/2008    
%>
纯JSP分页代码之sqlserver2005/2008
table>
纯JSP分页代码之sqlserver2005/2008
br>
纯JSP分页代码之sqlserver2005/2008
table width="100%" border="0" class="InternalHeader">
纯JSP分页代码之sqlserver2005/2008    
tr>
纯JSP分页代码之sqlserver2005/2008        
td>
纯JSP分页代码之sqlserver2005/2008        
div align="center">
纯JSP分页代码之sqlserver2005/2008        

纯JSP分页代码之sqlserver2005/2008            out.print(
"");
纯JSP分页代码之sqlserver2005/2008            
//显示第一页或者前一页的链接
纯JSP分页代码之sqlserver2005/2008            
//如果当前页不是第1页,则显示第一页和前一页的链接
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008
            if (PageNo != 1纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008                PrevStart 
= PageNo - 1;
纯JSP分页代码之sqlserver2005/2008                out.print(
"第一页 ");
纯JSP分页代码之sqlserver2005/2008                out.print(
"" + PrevStart
纯JSP分页代码之sqlserver2005/2008                        
+ ">前一页
");
纯JSP分页代码之sqlserver2005/2008            }

纯JSP分页代码之sqlserver2005/2008            out.print(
"[");
纯JSP分页代码之sqlserver2005/2008
纯JSP分页代码之sqlserver2005/2008            
//打印需要显示的页码
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008
            for (int c = CounterStart; c  CounterEnd; c++纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008                
if (c  MaxPage) 纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008                    
if (c == PageNo) 纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008                        
if (c % PageSize == 0纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008                            out.print(c);
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008                        }
 else 纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008                            out.print(c 
+ " ,");
纯JSP分页代码之sqlserver2005/2008                        }

纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008                    }
 else if (c % PageSize == 0纯JSP分页代码之sqlserver2005/2008{
纯JSP分页代码之sqlserver2005/2008                        out.print(
"" + c + ">" + c
纯JSP分页代码之sqlserver2005/2008                                
+ "
");
纯JSP分页代码之sqlserver2005/2008纯JSP分页代码之sqlserver2005/2008

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template