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日

相关文章

  • 01-三层架构之查询数据库数据

    一、后台操作流程 1.创建数据库 CREATE DATABASE wyy_music; USE wyy_music; DROP TABLE IF EXISTS `tb_music`; CREATE TABLE `tb_music` ( `music_id` INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT, — 歌曲I…

    Java 2023年5月8日
    00
  • 各类常见语言清除网页缓存方法汇总

    各类常见语言清除网页缓存方法汇总 在开发Web应用时,经常会涉及到网页缓存的问题。为了尽可能的保证用户体验,我们需要清除掉网页缓存,使得每次用户访问页面时都能获取最新的数据。本篇文章将针对以下常见语言,为大家汇总清除网页缓存的方法。 HTML 用户访问网站时,浏览器会自动缓存显示的网页,以便下次快速加载。清除浏览器的缓存可以通过以下方法: <meta …

    Java 2023年6月15日
    00
  • Java编程中的4种代码块详解

    Java编程中的4种代码块详解 在Java程序中,有4种不同类型的代码块可以用来组织代码。这些代码块分别是:静态代码块、实例代码块、构造代码块和同步代码块。下面将详细讲解这4种代码块及其使用方法。 静态代码块 静态代码块是在类加载时执行的代码块,只会被执行一次。它通常用于对静态变量的初始化或处理一些静态资源。 静态代码块的语法如下: static { //代…

    Java 2023年5月30日
    00
  • Java通过调用C/C++实现的DLL动态库——JNI的方法

    Java Native Interface(JNI)是Java平台提供的一种机制,用于在Java应用程序中调用非Java代码(如C或C++代码)。通过使用JNI,Java应用程序可以与本地库中的代码进行交互,从而实现更高级别、底层的操作。在这个攻略中,我们将会讲解如何使用JNI在Java中调用C/C++编写的DLL动态库,并提供两个简单的示例。 步骤1:编写…

    Java 2023年5月23日
    00
  • java类型生命周期的详细解析

    Java类型生命周期的详细解析 Java语言的类型生命周期包括了以下几个阶段:加载(Loading)、链接(Linking)、初始化(Initialization)、使用(Usage)和卸载(Unloading)。在本文中,我们将详细解析Java类型生命周期的每个阶段。 1. 加载 加载阶段是指Java虚拟机(JVM)在需要使用一个类型时,会首先检查该类型是…

    Java 2023年5月26日
    00
  • Windows下Java调用可执行文件代码实例

    Windows下Java调用可执行文件代码实例 在Windows系统下,Java程序可以通过调用可执行文件(exe文件)来实现一些特定功能。本文将详细讲解如何在Java程序中调用可执行文件的步骤和过程。 准备工作 在开始之前,需要确保Java和可执行文件均已安装并配置好环境变量。 第一步:创建ProcessBuilder对象 在Java程序中调用可执行文件,…

    Java 2023年5月19日
    00
  • 深入理解spring boot异步调用方式@Async

    下面是关于“深入理解spring boot异步调用方式@Async”的完整攻略。 @Async注解的解释和作用 @Async注解是Spring Boot框架提供的一个异步调用方式,能够帮助我们更好的优化系统性能和提升用户体验。在Spring Boot框架的异步调用方式中,我们可以通过使用@Async注解来标记方法,从而实现异步调用。 在使用@Async注解时…

    Java 2023年5月26日
    00
  • java中double类型运算结果异常的解决方法

    针对“java中double类型运算结果异常的解决方法”,我给你详细讲解一下。 首先,问题的背景 在Java中,double类型是一种浮点数类型,用于存储小数,然而由于浮点数在计算机中的存储方式,会带来一些运算问题,例如: double a = 0.1; double b = 0.2; double c = a + b; System.out.println…

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