`

JSP 连接MYSQL 数据库 实现分页

    博客分类:
  • JSP
阅读更多
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@page import="java.sql.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>分页显示记录</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
 
  <body>
   <%
   String driverName="com.mysql.jdbc.Driver";
   String userName="root";
   String userPassword="root";
   String dbName="friend";
   //连接字符串
   String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPassword;
   Class.forName(driverName).newInstance();
   Connection connection=DriverManager.getConnection(url);
   Statement statement=connection.createStatement();
   int PageSize=8;         //每页显示的记录条数
   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){//如果为空,则表示第一页
   if(StartRow==0){
   PageNo=StartRow+1;//设定为1
   }
   }else{
   PageNo=Integer.parseInt(request.getParameter("PageNo"));//获取用户提交的页数
   StartRow=(PageNo-1)*PageSize; //获取开始显示的记录编号
   }
   //根据当前的页数显示一定数量的页数链接
   //设置显示页码的初始值
   if(PageNo%PageSize==0){
   CounterStart=PageNo-(PageSize-1);
   }else{
   CounterStart=PageNo-(PageNo%PageSize)+1;
   }
   CounterEnd=CounterStart+(PageSize-1);
   %>
//从数据库中取得全部结果集,并根据每页显示的记录数来判断可分为多少也页,然后取得当前页将要显示的结果集,其代码如下:
   <%
   //获取总记录数
   ResultSet rs=statement.executeQuery("select count(*) from friends");
   rs.next();
   RecordCount=rs.getInt(1);
//此处特别声明,sql语句里LIMIT后面要有一个空格,后面的", "也有一个空格,否则会报错(sql语法错误)
   rs=statement.executeQuery("SELECT id,name,tel FROM friends ORDER BY id DESC LIMIT "+StartRow+", "+PageSize);
   //获取总页数
   MaxPage=RecordCount%PageSize;
   if(RecordCount%PageSize==0){
   MaxPage=RecordCount/PageSize;
      }else{
      MaxPage=RecordCount/PageSize+1;
      }
     %>
   <center>
//显示当前页数据,通过一个循环,使用表格将当前页对应的结果集显示出来
   <table width="450" border="1">
   <tr>
   <th>编号</th>
   <th>姓名</th>
   <th>电话</th>
   </tr>
<%
while(rs.next()){
%>
<tr>
<td><%=rs.getString("id") %></td>
<td><%=rs.getString("name") %></td>
<td><%=rs.getString("tel") %></td>
</tr>
<%
}
  %>
   </table>
//实现分页显示的链接,当前用回单击这些链接的时候会跳转到相应的页面来查看数据
    <%
     out.print("<font size=4>");
     //显示第一页或者前一页的链接
     //若果当前页或是第一页,则显示第一页和前一页的链接
     if(PageNo!=1){
     PrevStart=PageNo-1;
     out.print("<a href=db5.jsp?PageNo=1>第一页</a>:");
     out.print("<a href=db5.jsp?PageNo="+PrevStart+">前一页</a>");
     }
     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("<a href=db5.jsp?PageNo="+c+">"+c+"</a>");
     }else{
     out.print("<a href=db5.jsp?PageNo="+c+">"+c+"</a>");
     }
     }else{
     if(PageNo==MaxPage){
     out.print(c);
     break;
     }else{
     out.print("<a href=db5.jsp?PageNo="+c+">"+c+"</a>");
     break;
     }
     }
     }
     out.print("]");
     if(PageNo<MaxPage){//如果当前页不是最后一页,则显示下一页链接
     NextPage=PageNo+1;
     out.print("<a href=db5.jsp?PageNo="+NextPage+">下一页</a>");
     }
     //同时如果当前页不是最后一页,要显示最后一页的链接
     if(PageNo<MaxPage){
     LastRec=RecordCount%PageSize;
     if(LastRec==0){
     LastStartRecord=RecordCount-PageSize;
     }else{
     LastStartRecord=RecordCount-LastRec;
     }
     out.print(":");
     out.print("<a href=db5.jsp?PageNo="+MaxPage+">最后一页</a>");
     }
     out.print("</front>");
   %>
//关闭释放资源
   <%
   rs.close();
   statement.close();
   connection.close();
     %>
      </center>
  </body>
</html>
  • 大小: 71.7 KB
  • 大小: 74.7 KB
  • 大小: 65.6 KB
分享到:
评论

相关推荐

    JSP连接SQL数据库实现数据分页显示

    ### JSP连接SQL数据库实现数据分页显示 #### 概述 本文档通过一个实际案例展示了如何使用JSP(Java Server Pages)与SQL数据库进行交互,并实现数据的分页显示功能。该示例包含了详细的代码及注释,有助于理解整个...

    Ajax Jsp 连接MySQL数据库

    在这个“Ajax Jsp 连接MySQL数据库”的主题中,我们将深入探讨如何在JSP页面上利用Ajax技术与后台MySQL数据库进行交互,同时处理多个Ajax请求。 首先,让我们了解基本概念。Ajax的核心是通过JavaScript向服务器发送...

    servlet连接mysql数据库,实现分页加载

    总结,使用Servlet连接MySQL数据库并实现分页加载功能,主要涉及以下几个步骤:配置JDBC驱动、建立数据库连接、执行SQL查询(含分页条件)、处理结果集、实现分页逻辑以及正确关闭资源。在实际开发中,还要考虑错误...

    mysql数据库实现的分页javaWEB开发实现

    本教程将以MySQL数据库为背景,结合Java技术,详细介绍如何实现分页功能。 首先,我们要了解分页的基本概念。分页是将数据库查询结果分割成若干个页面进行显示,每个页面包含一定数量的数据记录。这有助于减少网络...

    用JSTL实现JSP分页显示数据代码(MySQL数据库)

    JSTL 实现 JSP 分页显示数据代码(MySQL 数据库) 本文将详细讲解如何使用 JSTL 实现 JSP 分页显示数据代码,并使用 MySQL 作为数据库。该代码不仅提供了分页显示数据的功能,还提供了数据库和表的创建代码。 标题...

    mysql分页 jsp实现 servlet+javabean+jsp三级架构

    在实现分页接口时,需要连接数据库,使用JDBC连接到MySQL数据库。可以使用DBUtil类来处理数据库连接和关闭操作。 六、JavaBean的使用 在使用Servlet+JavaBean+JSP三级架构时,JavaBean扮演着一个非常重要的角色。...

    jsp中数据库在页面分页的实现

    本主题将深入探讨如何在JSP中利用数据库实现页面分页,并涉及存储过程、Servlet以及Oracle和MySQL数据库的分页策略。 首先,我们要理解JSP(JavaServer Pages)是一种基于Java的动态网页技术,它可以嵌入Java代码来...

    JSP+JavaBean实现MySQL子查询数据库分页

    本教程将详细讲解如何使用JSP(JavaServer Pages)配合JavaBean来实现MySQL数据库的子查询分页功能。在Eclipse 3.4环境下,我们可以轻松地完成这一过程。 首先,我们需要理解JSP和JavaBean的基本概念。JSP是一种...

    jsp +mysql+分页

    标题中的"jsp +mysql+分页"涉及到的是Web开发中的几个关键概念,主要集中在Java服务器页面(JSP)、MySQL数据库以及分页技术的应用。这里我们将深入探讨这些知识点。 首先,JSP(JavaServer Pages)是一种动态网页...

    jsp读取数据库实现分页技术简析.docx

    `DBConnect()`方法使用`Class.forName()`加载数据库驱动,并通过`DriverManager.getConnection()`建立到MySQL数据库的连接。如果出现异常,如驱动未找到或SQL语句错误,该方法会返回相应的错误信息。 3. **数据库...

    jsp真分页mysql数据库

    本文将详细介绍如何在MySQL数据库环境下,结合JSP实现真正的分页功能。 首先,我们需要了解什么是“真分页”。真分页是指在服务器端根据用户请求的页码动态地查询数据库,而不是一次性获取所有数据再进行客户端分页...

    jsp 实现分页+mysql

    本教程将深入讲解如何使用JavaServer Pages(JSP)结合Servlet和MySQL数据库来实现分页功能。 首先,我们需要了解JSP的基本概念。JSP是一种基于Java的动态网页技术,它允许开发人员在HTML页面中嵌入Java代码,从而...

    java连mysql接数据库,jsp实现分页

    总结来说,Java连接MySQL数据库并通过JSP实现分页功能涉及以下几个关键步骤:配置JDBC驱动,建立数据库连接,编写SQL查询,处理分页逻辑,以及在JSP中展示数据和创建导航链接。这些基础知识是构建Web应用程序的重要...

    JSP+JDBC_真分页(基于MySQL数据库分页)

    **JSP + JDBC 真分页实现详解** 在Web开发中,为了提高用户体验,当数据量过大时,我们通常采用分页的方式来展示数据。在Java Web应用中,结合JSP(JavaServer Pages)和JDBC(Java Database Connectivity)可以...

    JSP+DAO和MVC+DAO(基于MySQL数据库分页)-v笔记

    总结来说,这个笔记讨论了如何在JSP和MVC两种不同的架构下,结合DAO模式实现MySQL数据库的分页功能,强调了代码封装和模块化的重要性,以及MVC模式在提高代码可读性和可维护性上的优势。在实际开发中,理解并熟练...

    jsp、servlet (mysql 数据库)购物网站

    【标题】"jsp、servlet (mysql 数据库)购物网站" 涉及的主要知识点包括JSP(JavaServer Pages)、Servlet、CSS以及MySQL数据库。这是一个基于Web的电子商务平台,提供了全面的购物体验,包括用户注册登录、购物车...

    jsp 分页技术 数据库MysqL

    本教程将聚焦于使用JavaServer Pages(JSP)结合MySQL数据库实现分页技术。 首先,我们需要理解JSP的基础。JSP是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,以实现服务器端的逻辑处理。在JSP中,...

    简单的分页查询功能 jsp mysql

    本教程将聚焦于如何使用Java Server Pages(JSP)、Servlet以及MySQL数据库来实现一个简单的分页查询功能,并涉及到Chinese character handling。 首先,我们来理解分页的基本原理。分页是通过限制每次查询返回的...

    JSP+MySql分页组件

    2. **编写SQL查询**:在服务器端,使用JDBC(Java Database Connectivity)连接到MySQL数据库,编写SQL查询语句。例如,获取第一页的10条数据: ```sql SELECT * FROM users LIMIT 10 OFFSET 0; ``` `LIMIT`指定...

Global site tag (gtag.js) - Google Analytics