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日

相关文章

  • Mybatis各种查询接口使用详解

    Mybatis各种查询接口使用详解 Mybatis是一款优秀的持久层框架,提供了不同的查询接口来满足各种复杂查询需求。本文将详细讲解Mybatis各种查询接口的使用方法。 基本查询 select 使用select查询数据非常简单,只需要在Mapper接口定义对应的方法,返回值为查询结果即可。 <!– Mapper.xml –> <sel…

    Java 2023年5月19日
    00
  • Springmvc中的转发重定向和拦截器的示例

    下面是关于”Springmvc中的转发重定向和拦截器”的详细攻略: 1. 转发和重定向 1.1 转发 转发是指在当前请求的处理过程中,在服务器端直接将请求转发到指定的页面或控制器,由被转发的目标页面或控制器进行处理和响应。在Springmvc中,转发通常通过forward关键字实现,如下所示: @RequestMapping("/forward&q…

    Java 2023年6月15日
    00
  • 如何HttpServletRequest文件对象并储存

    首先需要明确的是,HttpServletRequest对象是Java Servlet API提供的一个接口对象,它代表了一个HTTP请求。若想将HttpServletRequest对象储存到磁盘文件中,就需要进行如下步骤: Step 1:获取HttpServletRequest对象 在Servlet中,HttpServletRequest对象可以通过doGe…

    Java 2023年6月15日
    00
  • 浅谈springboot如何保证多线程安全

    下面是关于“浅谈Spring Boot如何保证多线程安全”的攻略: 1. 了解多线程 要理解多线程安全,我们需要先了解多线程的概念。简单来说,多线程是一种执行多个任务的机制,可以让程序同时完成多项任务,提高程序的运行效率。 但是,多线程也会带来线程安全问题。如果多个线程同时访问同一个资源,就有可能造成数据的混乱或错误。 2. Spring Boot的多线程机…

    Java 2023年5月19日
    00
  • Java遍历集合方法分析(实现原理、算法性能、适用场合)

    Java遍历集合是每个Java开发者都必须学会的一个技能。它是处理集合数据的重要步骤。本文将详细讲解Java遍历集合方法的实现原理、算法性能和适用场合。 什么是Java集合 Java集合是Java语言提供的一组数据结构,用于存储数据的容器。它们是一种实用工具,可用于处理复杂的数据结构,例如列表、队列、栈、哈希表等。Java集合框架是一组接口和类的集合,用于处…

    Java 2023年5月19日
    00
  • Spring Boot2深入分析解决java.lang.ArrayStoreException异常

    Spring Boot2深入分析解决java.lang.ArrayStoreException异常 问题描述 如果在Spring Boot中使用JPA,而你的数据实体类中有一个数组类型的属性,那么在运行时可能会遇到以下错误: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresen…

    Java 2023年6月2日
    00
  • Java gbk转utf-8

    Java中GBK与UTF-8是常见的字符编码方式,这里讲解如何将GBK编码的字符串转换成UTF-8编码的字符串,共有两种方法。 方法一:手动转换 手动转换需要使用Java的编码转换API,具体步骤如下: 将字符串按GBK编码方式解码为字节数组; 将字节数组按UTF-8编码方式组装成字符串。 示例代码如下: import java.io.Unsupported…

    Java 2023年5月20日
    00
  • Spring Security如何在Servlet中执行

    Spring Security 是 Spring 框架中的一个安全框架,可以用于保护 Web 应用程序的安全,包括身份验证、授权、防止攻击等功能。在 Servlet 中使用 Spring Security 可以有效地保护应用程序的安全,下面是详细的使用攻略。 1. 添加 Spring Security 依赖 首先,需要在项目中添加 Spring Securi…

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