JavaWeb实现学生信息管理系统(1)

JavaWeb实现学生信息管理系统需要以下步骤:

1. 环境搭建

首先需要搭建好JavaWeb开发环境,包括JDK和IDE等工具,以及Tomcat服务器。可以参考相关教程进行安装配置。

2. 创建项目

在IDE中创建一个新的JavaWeb项目,并创建所需的数据库表。可以使用MySQL等关系型数据库进行创建,具体表结构可以根据实际需求进行设计。

3. 编写JavaBean

创建一个JavaBean类作为模型,用于存储学生信息,包括学号、姓名、性别、年龄等属性,以及对应的getter和setter方法。

示例:

public class Student {
    private String id;
    private String name;
    private String sex;
    private int age;

    //getter和setter方法
}

4. 编写DAO层

在DAO层中,通过JDBC连接数据库,实现对学生信息的增删改查操作。可以使用PreparedStatement等工具类进行操作。同时,建议使用连接池进行连接管理。

示例:

public class StudentDAO {
    //连接池
    private DataSource ds;

    //查询所有学生信息
    public List<Student> findAll() throws SQLException {
        List<Student> students = new ArrayList<>();
        Connection conn = ds.getConnection();
        String sql = "SELECT * FROM student";
        PreparedStatement pstmt = conn.prepareStatement(sql);
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
            Student student = new Student();
            student.setId(rs.getString("id"));
            student.setName(rs.getString("name"));
            student.setSex(rs.getString("sex"));
            student.setAge(rs.getInt("age"));
            students.add(student);
        }
        rs.close();
        pstmt.close();
        conn.close();
        return students;
    }

    //根据学号查询学生信息
    public Student findById(String id) throws SQLException {
        Student student = null;
        Connection conn = ds.getConnection();
        String sql = "SELECT * FROM student WHERE id=?";
        PreparedStatement pstmt = conn.prepareStatement(sql);
        pstmt.setString(1, id);
        ResultSet rs = pstmt.executeQuery();
        if (rs.next()) {
            student = new Student();
            student.setId(rs.getString("id"));
            student.setName(rs.getString("name"));
            student.setSex(rs.getString("sex"));
            student.setAge(rs.getInt("age"));
        }
        rs.close();
        pstmt.close();
        conn.close();
        return student;
    }

    //添加学生信息
    public void add(Student student) throws SQLException {
        Connection conn = ds.getConnection();
        String sql = "INSERT INTO student VALUES (?,?,?,?)";
        PreparedStatement pstmt = conn.prepareStatement(sql);
        pstmt.setString(1, student.getId());
        pstmt.setString(2, student.getName());
        pstmt.setString(3, student.getSex());
        pstmt.setInt(4, student.getAge());
        pstmt.executeUpdate();
        pstmt.close();
        conn.close();
    }

    //根据学号删除学生信息
    public void delete(String id) throws SQLException {
        Connection conn = ds.getConnection();
        String sql = "DELETE FROM student WHERE id=?";
        PreparedStatement pstmt = conn.prepareStatement(sql);
        pstmt.setString(1, id);
        pstmt.executeUpdate();
        pstmt.close();
        conn.close();
    }

    //更新学生信息
    public void update(Student student) throws SQLException {
        Connection conn = ds.getConnection();
        String sql = "UPDATE student SET name=?,sex=?,age=? WHERE id=?";
        PreparedStatement pstmt = conn.prepareStatement(sql);
        pstmt.setString(1, student.getName());
        pstmt.setString(2, student.getSex());
        pstmt.setInt(3, student.getAge());
        pstmt.setString(4, student.getId());
        pstmt.executeUpdate();
        pstmt.close();
        conn.close();
    }
}

5. 编写Servlet

在Servlet中,实现与客户端交互,接收用户请求并调用DAO层进行数据操作,最终将结果返回给客户端。建议使用JSP进行视图展示。

示例:

public class StudentServlet extends HttpServlet {
    private StudentDAO dao;

    public void init() throws ServletException {
        dao = new StudentDAO();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        String action = request.getParameter("action");
        if ("list".equals(action)) {
            try {
                List<Student> students = dao.findAll();
                request.setAttribute("students", students);
                request.getRequestDispatcher("/student_list.jsp").forward(request, response);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } else if ("edit".equals(action)) {
            String id = request.getParameter("id");
            try {
                Student student = dao.findById(id);
                request.setAttribute("student", student);
                request.getRequestDispatcher("/student_edit.jsp").forward(request, response);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } else if ("delete".equals(action)) {
            String id = request.getParameter("id");
            try {
                dao.delete(id);
                response.sendRedirect(request.getContextPath() + "/StudentServlet?action=list");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        String action = request.getParameter("action");
        if ("add".equals(action)) {
            Student student = new Student();
            student.setId(request.getParameter("id"));
            student.setName(request.getParameter("name"));
            student.setSex(request.getParameter("sex"));
            student.setAge(Integer.parseInt(request.getParameter("age")));
            try {
                dao.add(student);
                response.sendRedirect(request.getContextPath() + "/StudentServlet?action=list");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } else if ("update".equals(action)) {
            Student student = new Student();
            student.setId(request.getParameter("id"));
            student.setName(request.getParameter("name"));
            student.setSex(request.getParameter("sex"));
            student.setAge(Integer.parseInt(request.getParameter("age")));
            try {
                dao.update(student);
                response.sendRedirect(request.getContextPath() + "/StudentServlet?action=list");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

以上就是JavaWeb实现学生信息管理系统的完整攻略,其中涉及到了JavaBean、DAO层、Servlet等技术,同时需要注意相关的数据库配置和视图展示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaWeb实现学生信息管理系统(1) - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java实现学生成绩档案管理系统

    Java实现学生成绩档案管理系统攻略 系统概述 学生成绩档案管理系统是一个简单的学生成绩管理工具,实现对学生成绩、个人信息的添加、查看、修改和删除等操作。本系统采用Java编写,使用MySQL作为后台数据库。 系统功能 本系统实现以下功能: 添加学生成绩和个人信息 查看学生成绩和个人信息 修改学生成绩和个人信息 删除学生成绩和个人信息 技术准备 开发工具:E…

    Java 2023年5月19日
    00
  • 通过代码实例解析JAVA类生命周期

    通过代码实例解析JAVA类生命周期 Java中的类生命周期是指一个类从编写到被垃圾回收的整个过程,包括编译,加载,链接,初始化,使用和卸载等多个阶段。下面将通过代码实例来解析Java类生命周期。 1. 编写Java代码 首先,我们需要编写一个Java类的代码。以一个简单的HelloWorld程序为例,代码如下: public class HelloWorld…

    Java 2023年5月23日
    00
  • 在CentOS中给Apache Tomcat绑定IPv4地址的教程

    下面是在CentOS中给Apache Tomcat绑定IPv4地址的完整攻略: 确认Tomcat默认监听地址 首先,我们需要确认Tomcat当前默认监听的地址。在终端输入以下命令: sudo lsof -i :8080 8080是Tomcat默认的监听端口号,如果你使用的是其他端口号,需要将命令中的8080换成你的端口号。执行命令后,如果输出结果中第二列显示…

    Java 2023年6月15日
    00
  • 详解Springboot之接收json字符串的两种方式

    下面是详解“详解Springboot之接收json字符串的两种方式”的完整攻略。 1. 介绍 Spring Boot是一个快速开发框架,它可以简化Spring的配置和开发过程。在使用Spring Boot的过程中,经常需要接收json字符串数据,本篇文章将详细介绍Spring Boot中接收json字符串的两种方式。 2. 方式一:使用@RequestBod…

    Java 2023年5月20日
    00
  • Java通过导出超大Excel文件解决内存溢出问题

    当处理超大规模的Excel文件时,Java很容易发生内存溢出的问题。这时候,最好的解决方案之一是通过导出Excel文件来减小内存使用量。以下是详细的攻略: 1. 使用Apache POI库 Apache POI是一个Java库,它提供了对许多Microsoft Office格式文件(如Excel、Word和PowerPoint)的读取和写入能力。在处理超大规…

    Java 2023年5月19日
    00
  • Apache Hudi结合Flink的亿级数据入湖实践解析

    下面我来详细讲解一下Apache Hudi结合Flink的亿级数据入湖实践解析的完整攻略。 概述 本文主要介绍如何使用Apache Hudi和Flink实现亿级数据的入湖操作。Hudi是一个可靠的增量数据处理框架,适用于在Apache Spark等大数据处理框架上进行大数据增量计算。而Flink则是一个分布式流处理框架,具有高吞吐量和低延迟的特点。将两者结合…

    Java 2023年5月20日
    00
  • ActiveMQ结合Spring收发消息的示例代码

    ActiveMQ是目前非常流行的一种消息中间件,而Spring框架则是目前最为流行的Java企业应用开发框架之一。它们可以结合使用,为我们带来高效可靠的消息传递。 下面,我将详细讲解如何在Spring中使用ActiveMQ进行消息的发送与接收。 环境准备 在开始使用之前,需要先准备好以下环境。 安装ActiveMQ。 创建一个Maven项目,添加Active…

    Java 2023年5月30日
    00
  • java实现文件读写与压缩实例

    Java实现文件读写与压缩实例 文件读取 Java中可以通过File类和FileInputStream类来实现文件读取。其中,File类用于表示文件对象,而FileInputStream类用于读文件的数据流。 下面是一个简单的文件读取的示例代码,读取指定路径下的txt文件: import java.io.File; import java.io.FileIn…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部