JAVA/JSP学习系列之八(改写MySQL翻页例子)

标题:JAVA/JSP学习系列之八(改写MySQL翻页例子)攻略

介绍:这篇攻略是对于JAVA/JSP学习系列之八的内容进行详细讲解,通过改写MySQL翻页例子,从而实现翻页操作,方便用户进行数据查询和浏览。以下为详细步骤:

一、下载MySQL JDBC驱动程序

1.1 打开MySQL官网,下载最新版本的JDBC驱动程序

1.2 将下载好的驱动解压缩到合适的目录中,例如F:\java_lib中

1.3 在项目中引入MySQL JDBC驱动

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.11</version>
</dependency>

二、创建数据库和数据表

2.1 创建数据库

CREATE DATABASE java_web;

2.2 创建书籍数据表

CREATE TABLE book (
id INT UNSIGNED AUTO_INCREMENT,
book_name VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);

2.3 插入数据

INSERT INTO book (book_name, author) VALUES
('Java程序设计', '张三'),
('Python程序设计', '李四'),
('PHP程序设计', '王五'),
('C#程序设计', '赵六');

三、创建JSP页面

3.1 创建index.jsp页面

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>书籍列表</title>
</head>
<body>
    <%
        request.setCharacterEncoding("UTF-8");

        int pageSize = 2;  // 每页显示的记录数
        int currentPage = 1;  // 当前页号
        String strCurrentPage = request.getParameter("currentPage");
        if (strCurrentPage != null) {
            currentPage = Integer.parseInt(strCurrentPage);
        }

        // 加载驱动程序
        Class.forName("com.mysql.cj.jdbc.Driver");

        // 建立连接
        String url = "jdbc:mysql://localhost:3306/java_web?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true";
        Connection conn = DriverManager.getConnection(url, "root", "");

        // 创建Statement对象
        Statement stmt = conn.createStatement();

        // 创建ResultSet对象
        ResultSet rs = stmt.executeQuery("SELECT * FROM book LIMIT " + (currentPage - 1) * pageSize + ", " + pageSize);

        out.println("<table border=\"1\">");
        out.println("<tr><td>序号</td><td>书名</td><td>作者</td></tr>");
        while (rs.next()) {
            int id = rs.getInt("id");
            String bookName = rs.getString("book_name");
            String author = rs.getString("author");
            out.println("<tr><td>" + id + "</td><td>" + bookName + "</td><td>" + author + "</td></tr>");
        }
        out.println("</table>");

        // 计算页数
        ResultSet rsCount = stmt.executeQuery("SELECT COUNT(*) AS count FROM book");
        rsCount.next();
        int recordCount = rsCount.getInt("count");
        int pageCount = (recordCount + pageSize - 1) / pageSize;

        // 显示分页链接
        out.print("<a href=\"?currentPage=1\">首页</a>");
        out.print("&nbsp;<a href=\"?currentPage=" + (currentPage - 1) + "\">上一页</a>");
        out.print("&nbsp;<a href=\"?currentPage=" + (currentPage + 1) + "\">下一页</a>");
        out.print("&nbsp;<a href=\"?currentPage=" + pageCount + "\">末页</a>");
        out.print("&nbsp;总记录数:" + recordCount);
        out.print("&nbsp;每页显示:" + pageSize + " 条记录");
        out.print("&nbsp;当前页:" + currentPage + "/" + pageCount);

        // 关闭ResultSet对象
        rs.close();

        // 关闭Statement对象
        stmt.close();

        // 关闭连接
        conn.close();
    %>
</body>
</html>

3.2 运行index.jsp页面,在浏览器中可以看到分页数据列表,以及分页链接。

示例一:修改页面每页显示的记录数

在index.jsp页面中,修改pageSize变量的值,如将其改为3,每页显示的记录数就会由2条变为3条。重新运行页面即可看到效果。

示例二:修改数据库连接参数

在index.jsp页面中,修改url变量的值,即可修改数据库的连接参数,如将其改为:

jdbc:mysql://localhost:3306/java_web?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8

即可修改数据库连接的字符集编码为UTF-8。重新运行页面即可看到效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA/JSP学习系列之八(改写MySQL翻页例子) - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • 微信小程序request请求后台接口php的实例详解

    我来详细讲解一下“微信小程序request请求后台接口php的实例详解”的完整攻略。 1. 概述 在开发微信小程序时,经常需要请求后台接口获取或者提交数据。这时候就需要用到request请求。request请求可以使用小程序自带的 wx.request 方法实现。同时,后台接口一般使用 PHP 编写。因此,在本文中将详细介绍如何在小程序中使用 request…

    Java 2023年5月23日
    00
  • Java文件操作之按行读取文件和遍历目录的方法

    针对“Java文件操作之按行读取文件和遍历目录的方法”,我为您提供以下攻略: 一、按行读取文件 1. BufferedReader按行读取 要按行读取文件,可以借助BufferedReader类。具体实现步骤如下: 创建文件,例如我们要读取的文件名为test.txt,存放在D:\test目录下,则创建文件实例代码如下: java File file = ne…

    Java 2023年5月19日
    00
  • 从云数据迁移服务看MySQL大表抽取模式的原理解析

    从云数据迁移服务看MySQL大表抽取模式的原理解析 前言 MySQL是目前互联网应用中广泛使用的关系型数据库之一,但是在处理大量数据时,由于MySQL存储引擎特性和限制导致单表数据量的限制相对较小。为了解决这个问题,可以采用大表抽取的方式,将数据按照一定的规则划分成小批量进行处理。本文从云数据迁移服务角度,结合大表抽取进行原理解析。 什么是云数据迁移服务? …

    Java 2023年6月16日
    00
  • 一篇文章教带你了解Java Spring之自动装配

    一篇文章教带你了解Java Spring之自动装配 1. 理解什么是自动装配 在Spring中,依赖注入(DI)是实现对象之间解耦的一种常用方式。而自动装配(Autowiring)则是一种更加便利的依赖注入方式,它能够自动地为容器中需要注入的对象找到合适的实例。自动装配可以减少开发者对注入实例的手动处理,减少了代码冗余。 2. Spring的自动装配模式 S…

    Java 2023年5月19日
    00
  • SpringMVC文件上传原理及实现过程解析

    SpringMVC文件上传原理解析 在SpringMVC文件上传时,客户端向服务器发送文件,SpringMVC通过MultipartResolver对请求进行处理,解析出其中的文件,并将文件保存到指定的位置。MultipartResolver是一个接口,SpringMVC提供了两种实现方式: StandardServletMultipartResolver:…

    Java 2023年6月16日
    00
  • java 中使用maven shade plugin 打可执行Jar包

    Java是一门非常流行的编程语言,Maven是一个优秀的Java项目管理工具,能够极大地简化Java项目的构建和管理。在Java项目中,我们有时需要将所有依赖打包成一个可执行的jar包,这时候我们可以使用Maven Shade Plugin来实现。下面,我将详细介绍如何使用Maven Shade Plugin打可执行Jar包的完整攻略。 步骤1:创建Mave…

    Java 2023年5月20日
    00
  • 算法系列15天速成 第八天 线性表【下】

    算法系列15天速成 第八天 线性表【下】完整攻略 前言 在线性表【上】的基础上,我们再来讲一些新的线性表特性及其相关算法。 栈 栈是一种特殊的线性表,只能在表尾插入和删除数据,简单来说就是类似于装东西的箱子。它有以下几个特点: 先进后出,后进先出,即最先入栈的元素最后出栈; 只能在表尾插入和删除数据,元素的加入和删除只发生在栈顶。 栈的应用 递归; 计算器;…

    Java 2023年5月31日
    00
  • 基于@JsonProperty的使用说明

    让我来详细介绍一下如何在Java应用程序中使用基于@JsonProperty的技术。 什么是基于@JsonProperty的技术? @JsonProperty是一个Jackson库中的注解,它可以帮助我们在Java对象和JSON文本之间进行转换。当Java对象被序列化和反序列化时,@JsonProperty注解可以将Java属性名和对应的JSON字段名进行映…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部