基于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来访问学生管理系统。

相关推荐

最新推荐

recommend-type

基于Java Web的学生选课系统JavaWeb设计

主要的模块分为,用户登录模块,管理员发布选课,进行增删查改。学生进行课程的选定以及退选。教师管理员可以查看自己所带课程选课的相关学生信息等等。 关键词:JSP;MySQL数据库;选课系统。
recommend-type

java实现简单的学生信息管理系统代码实例

主要介绍了java实现简单的学生信息管理系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

java(swing)+ mysql实现学生信息管理系统

主要分享了java mysql实现学生信息管理系统的源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

java学生管理系统界面简单实现(全)

主要为大家详细介绍了java学生管理系统界面的简单实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

Java中SSM框架实现增删改查功能代码详解

主要介绍了Java中SSM框架实现增删改查功能代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SPDK_NVMF_DISCOVERY_NQN是什么 有什么作用

SPDK_NVMF_DISCOVERY_NQN 是 SPDK (Storage Performance Development Kit) 中用于查询 NVMf (Non-Volatile Memory express over Fabrics) 存储设备名称的协议。NVMf 是一种基于网络的存储协议,可用于连接远程非易失性内存存储器。 SPDK_NVMF_DISCOVERY_NQN 的作用是让存储应用程序能够通过 SPDK 查询 NVMf 存储设备的名称,以便能够访问这些存储设备。通过查询 NVMf 存储设备名称,存储应用程序可以获取必要的信息,例如存储设备的IP地址、端口号、名称等,以便能
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。