基于java web的学生管理系统,实现增删查改
时间: 2024-02-01 08:13:17 浏览: 21
要实现基于Java Web的学生管理系统,可以按照以下步骤:
1. 创建数据库表格
首先需要创建数据库表格,包括学生信息的各个字段,例如学生ID、姓名、性别、年龄、班级等。
2. 创建JavaBean类
创建一个JavaBean类,用来存储学生信息,包括各个字段的setter和getter方法。
3. 创建DAO层
创建一个DAO层,用来对数据库进行增删查改操作,包括添加学生、删除学生、查询学生、更新学生信息等。
4. 创建Servlet层
创建一个Servlet层,用来接收前端请求,将请求参数传递给DAO层进行数据库操作,并将操作结果返回给前端。
5. 创建JSP页面
创建一个JSP页面,用来展示学生信息、添加学生、修改学生信息等。
6. 部署应用
将应用部署到服务器上,例如Tomcat服务器,让用户可以通过浏览器访问学生管理系统。
具体实现方法可以参考以下示例代码:
1. 创建数据库表格
```sql
CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
gender VARCHAR(10),
age INT,
class VARCHAR(20)
);
```
2. 创建JavaBean类
```java
public class Student {
private int id;
private String name;
private String gender;
private int age;
private String clazz;
// setter and getter methods
}
```
3. 创建DAO层
```java
public class StudentDAO {
private static final String URL = "jdbc:mysql://localhost:3306/studentdb";
private static final String USERNAME = "root";
private static final String PASSWORD = "root";
public void addStudent(Student student) {
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement ps = conn.prepareStatement("INSERT INTO student(name, gender, age, class) VALUES (?, ?, ?, ?)")) {
ps.setString(1, student.getName());
ps.setString(2, student.getGender());
ps.setInt(3, student.getAge());
ps.setString(4, student.getClazz());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void deleteStudent(int id) {
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement ps = conn.prepareStatement("DELETE FROM student WHERE id = ?")) {
ps.setInt(1, id);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public Student getStudentById(int id) {
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement ps = conn.prepareStatement("SELECT * FROM student WHERE id = ?")) {
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
if (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.setClazz(rs.getString("class"));
return student;
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public List<Student> getAllStudents() {
List<Student> students = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement ps = conn.prepareStatement("SELECT * FROM student")) {
ResultSet rs = ps.executeQuery();
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.setClazz(rs.getString("class"));
students.add(student);
}
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
public void updateStudent(Student student) {
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement ps = conn.prepareStatement("UPDATE student SET name = ?, gender = ?, age = ?, class = ? WHERE id = ?")) {
ps.setString(1, student.getName());
ps.setString(2, student.getGender());
ps.setInt(3, student.getAge());
ps.setString(4, student.getClazz());
ps.setInt(5, student.getId());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
4. 创建Servlet层
```java
public class StudentServlet extends HttpServlet {
private StudentDAO studentDAO = new StudentDAO();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if ("add".equals(action)) {
addStudent(request, response);
} else if ("delete".equals(action)) {
deleteStudent(request, response);
} else if ("update".equals(action)) {
updateStudent(request, response);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if ("list".equals(action)) {
listStudents(request, response);
} else if ("edit".equals(action)) {
editStudent(request, response);
}
}
private void addStudent(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 clazz = request.getParameter("class");
Student student = new Student();
student.setName(name);
student.setGender(gender);
student.setAge(age);
student.setClazz(clazz);
studentDAO.addStudent(student);
response.sendRedirect("student?action=list");
}
private void deleteStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
studentDAO.deleteStudent(id);
response.sendRedirect("student?action=list");
}
private void updateStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
String gender = request.getParameter("gender");
int age = Integer.parseInt(request.getParameter("age"));
String clazz = request.getParameter("class");
Student student = new Student();
student.setId(id);
student.setName(name);
student.setGender(gender);
student.setAge(age);
student.setClazz(clazz);
studentDAO.updateStudent(student);
response.sendRedirect("student?action=list");
}
private void listStudents(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Student> students = studentDAO.getAllStudents();
request.setAttribute("students", students);
request.getRequestDispatcher("list.jsp").forward(request, response);
}
private void editStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
Student student = studentDAO.getStudentById(id);
request.setAttribute("student", student);
request.getRequestDispatcher("edit.jsp").forward(request, response);
}
}
```
5. 创建JSP页面
```jsp
<!-- list.jsp -->
<%@ 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>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>班级</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${students}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.gender}</td>
<td>${student.age}</td>
<td>${student.clazz}</td>
<td>
<a href="student?action=edit&id=${student.id}">编辑</a>
<a href="student?action=delete&id=${student.id}">删除</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<br>
<a href="add.jsp">添加学生</a>
</body>
</html>
<!-- edit.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生管理系统</title>
</head>
<body>
<h1>学生管理系统</h1>
<form action="student" method="post">
<input type="hidden" name="action" value="update">
<input type="hidden" name="id" value="${student.id}">
姓名:<input type="text" name="name" value="${student.name}"><br>
性别:<input type="radio" name="gender" value="男" ${student.gender == '男' ? 'checked' : ''}>男
<input type="radio" name="gender" value="女" ${student.gender == '女' ? 'checked' : ''}>女<br>
年龄:<input type="text" name="age" value="${student.age}"><br>
班级:<input type="text" name="class" value="${student.clazz}"><br>
<input type="submit" value="保存">
</form>
<br>
<a href="student?action=list">返回列表</a>
</body>
</html>
<!-- add.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生管理系统</title>
</head>
<body>
<h1>学生管理系统</h1>
<form action="student" method="post">
<input type="hidden" name="action" value="add">
姓名:<input type="text" name="name"><br>
性别:<input type="radio" name="gender" value="男" checked>男
<input type="radio" name="gender" value="女">女<br>
年龄:<input type="text" name="age"><br>
班级:<input type="text" name="class"><br>
<input type="submit" value="添加">
</form>
<br>
<a href="student?action=list">返回列表</a>
</body>
</html>
```
6. 部署应用
将上述代码打包成war包,部署到Tomcat服务器上即可。用户可以通过访问http://localhost:8080/项目名/student?action=list来访问学生管理系统。