首頁 > 資料庫 > mysql教程 > 纯JSP分页代码之sqlserver2005/2008

纯JSP分页代码之sqlserver2005/2008

WBOY
發布: 2016-06-07 15:39:30
原創
1279 人瀏覽過

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板