请根据 MySQL 数据库 JSPDB 中的 info 数据表,表中字段 id 、 name 和 age 分别代表学生的学号、姓名和年龄,具体类型及属性详见数据库设计,要求使用纯 JDBC 驱动实现该 JSP 程序与该数据库进行连接,并在建立连接后实现在数据表中添加一行新学生记录的操作,最后从表 info 中查询所有记录(包含新记录)并以表格的形式显示。
时间: 2024-03-08 19:46:33 浏览: 130
好的,这是一个关于 Java Web 开发和 MySQL 数据库的问题。下面是一个简单的实现步骤:
1. 在 MySQL 数据库中创建一个名为 JSPDB 的数据库,然后在该数据库中创建一个名为 info 的数据表,代码如下:
```sql
CREATE DATABASE JSPDB;
USE JSPDB;
CREATE TABLE info (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
age INT
);
```
2. 在 JSP 代码中使用纯 JDBC 驱动连接数据库,实现在 info 表中添加一行新学生记录的操作,代码如下:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加学生信息</title>
</head>
<body>
<%
// 定义连接数据库的参数
String url = "jdbc:mysql://localhost:3306/JSPDB?useSSL=false&serverTimezone=UTC";
String username = "root";
String password = "123456";
// 加载 JDBC 驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立数据库连接
Connection conn = DriverManager.getConnection(url, username, password);
// 添加新学生记录
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String sql = "INSERT INTO info (name, age) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setInt(2, age);
pstmt.executeUpdate();
// 关闭 PreparedStatement 和 Connection 对象
pstmt.close();
conn.close();
%>
<h1>添加学生信息成功!</h1>
<hr>
<h2>所有学生信息如下:</h2>
<table border="1">
<tr>
<th>学号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<%
// 建立数据库连接
conn = DriverManager.getConnection(url, username, password);
// 查询所有学生信息
sql = "SELECT * FROM info";
pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
// 显示查询结果
while (rs.next()) {
%>
<tr>
<td> <%= rs.getInt("id") %> </td>
<td> <%= rs.getString("name") %> </td>
<td> <%= rs.getInt("age") %> </td>
</tr>
<% } %>
<%
// 关闭 ResultSet、PreparedStatement 和 Connection 对象
rs.close();
pstmt.close();
conn.close();
%>
</table>
</body>
</html>
```
3. 在浏览器中访问该 JSP 页面,输入新学生的姓名和年龄,然后点击提交按钮,即可在数据库中添加一行新学生记录,并在页面中显示所有学生信息(包含新记录)。
阅读全文