基于jdbc+servlet+jsp写一个学生管理系统
时间: 2023-07-25 09:40:37 浏览: 99
好的,下面是一个简单的学生管理系统的示例代码,使用 JDBC 连接数据库,Servlet 处理请求,JSP 显示数据:
1. 数据库表设计
创建一个名为 student 的表,包含以下字段:
- id (主键)
- name (学生姓名)
- age (学生年龄)
- gender (学生性别)
- score (学生成绩)
2. 数据库连接工具类
创建一个名为 DBHelper 的 Java 类,用于连接数据库,代码如下:
```
import java.sql.*;
public class DBHelper {
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/test";
private static final String USER = "root";
private static final String PASSWORD = "123456";
static {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
public static void close(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
3. Servlet 类
创建一个名为 StudentServlet 的 Java 类,用于处理请求,代码如下:
```
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/student")
public class StudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Student> students = new ArrayList<Student>();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = DBHelper.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM student");
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setAge(rs.getInt("age"));
student.setGender(rs.getString("gender"));
student.setScore(rs.getDouble("score"));
students.add(student);
}
request.setAttribute("students", students);
request.getRequestDispatcher("/student.jsp").forward(request, response);
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBHelper.close(conn, stmt, rs);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
```
4. JSP 页面
创建一个名为 student.jsp 的 JSP 页面,用于显示数据,代码如下:
```
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>学生管理系统</title>
</head>
<body>
<table>
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>成绩</th>
</tr>
<% for (Student student : (List<Student>) request.getAttribute("students")) { %>
<tr>
<td><%= student.getId() %></td>
<td><%= student.getName() %></td>
<td><%= student.getAge() %></td>
<td><%= student.getGender() %></td>
<td><%= student.getScore() %></td>
</tr>
<% } %>
</table>
</body>
</html>
```
5. 实体类
创建一个名为 Student 的 Java 类,用于封装学生数据,代码如下:
```
public class Student {
private int id;
private String name;
private int age;
private String gender;
private double score;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
```
以上就是一个简单的基于 JDBC、Servlet、JSP 的学生管理系统的示例代码。当然,这只是一个简单的示例,实际开发中应该考虑更多的情况,比如异常处理、数据验证、分页查询等等。