用jsp+jdbc+mysql写学生管理系统
时间: 2023-10-02 15:09:33 浏览: 142
学生管理系统是一个比较常见的小型项目,下面给出一个简单的实现思路:
1. 创建数据库
首先需要创建一个数据库,可以在 MySQL 客户端中执行以下语句:
```
CREATE DATABASE student_management;
```
2. 创建数据表
在该数据库中创建一个名为 student 的数据表,表结构如下:
```
CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
gender VARCHAR(4),
age INT,
major VARCHAR(50)
);
```
3. 编写 JSP 页面
在 Web 项目中创建一个名为 student.jsp 的 JSP 页面,该页面包含以下内容:
- 一个表单,用于添加学生信息
- 一个表格,用于显示学生信息
4. 编写 Java 代码
在 src 目录下创建一个名为 Student.java 的 Java 类,该类对应 student 数据表中的一条记录。代码如下:
```
public class Student {
private int id;
private String name;
private String gender;
private int age;
private String major;
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 String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
}
```
在 src 目录下创建一个名为 StudentDAO.java 的 Java 类,该类用于实现对 student 数据表的增删改查操作。代码如下:
```
public class StudentDAO {
private Connection conn;
public StudentDAO() {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/student_management";
String username = "root";
String password = "123456";
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
}
public List<Student> getAllStudents() {
List<Student> students = new ArrayList<>();
String sql = "SELECT * FROM student";
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setGender(rs.getString("gender"));
student.setAge(rs.getInt("age"));
student.setMajor(rs.getString("major"));
students.add(student);
}
} catch (Exception e) {
e.printStackTrace();
}
return students;
}
public void addStudent(Student student) {
String sql = "INSERT INTO student(name, gender, age, major) VALUES (?, ?, ?, ?)";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, student.getName());
pstmt.setString(2, student.getGender());
pstmt.setInt(3, student.getAge());
pstmt.setString(4, student.getMajor());
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
public void deleteStudent(int id) {
String sql = "DELETE FROM student WHERE id=?";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
5. 在 JSP 页面中调用 Java 代码
在 student.jsp 页面中,使用 JSTL 标签库调用 StudentDAO 类中的方法,实现对数据库的增删改查操作。具体代码如下:
```
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生管理系统</title>
</head>
<body>
<h1>学生管理系统</h1>
<h2>添加学生</h2>
<form action="addStudent.jsp" method="post">
姓名:<input type="text" name="name"><br>
性别:<input type="text" name="gender"><br>
年龄:<input type="text" name="age"><br>
专业:<input type="text" name="major"><br>
<input type="submit" value="提交">
</form>
<h2>学生列表</h2>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>专业</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach var="student" items="${students}">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.gender}</td>
<td>${student.age}</td>
<td>${student.major}</td>
<td><a href="deleteStudent.jsp?id=${student.id}">删除</a></td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
```
其中,${students} 表示从数据库中查询到的学生列表。
6. 编写 Servlet 代码
在 src 目录下创建一个名为 AddStudentServlet.java 的 Java 类,该类用于接受表单提交的数据,将数据插入到数据库中。代码如下:
```
@WebServlet("/addStudent.jsp")
public class AddStudentServlet extends HttpServlet {
private StudentDAO studentDAO = new StudentDAO();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String gender = request.getParameter("gender");
int age = Integer.parseInt(request.getParameter("age"));
String major = request.getParameter("major");
Student student = new Student();
student.setName(name);
student.setGender(gender);
student.setAge(age);
student.setMajor(major);
studentDAO.addStudent(student);
response.sendRedirect("student.jsp");
}
}
```
在 src 目录下创建一个名为 DeleteStudentServlet.java 的 Java 类,该类用于接受删除操作的请求,将指定学生从数据库中删除。代码如下:
```
@WebServlet("/deleteStudent.jsp")
public class DeleteStudentServlet extends HttpServlet {
private StudentDAO studentDAO = new StudentDAO();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
studentDAO.deleteStudent(id);
response.sendRedirect("student.jsp");
}
}
```
7. 部署项目
最后,将 Web 项目部署到 Tomcat 服务器中即可。在浏览器中访问 http://localhost:8080/student.jsp 即可看到学生管理系统的页面。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://img-home.csdnimg.cn/images/20250102104920.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)