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日

相关文章

  • 重复提交、重复刷新、防止后退的问题以及处理方式分析

    重复提交 重复提交是指同一个表单或接口多次提交的情况,会导致数据异常或其他不可预知的问题。解决方案有两种: 方式一:使用token机制。在提交表单时,前端通过后端生成的token验证,确保表单只能提交一次。 方式二:使用状态跳转。在表单提交成功后,将页面跳转到一个新页面或者刷新当前页面,以避免用户进行二次提交。 重复刷新 重复刷新是指对同一个页面不断进行刷新…

    Java 2023年6月15日
    00
  • 关于maven打包出错的解决方案

    下面是讲解“关于maven打包出错的解决方案”的完整攻略。 问题描述 在使用 Maven 打包过程中,有时会出现打包失败的情况,比如无法找到依赖库、编译错误等等,这给开发者带来困扰,下面将介绍几种解决方案。 解决方案 方案一:清理本地仓库 执行以下命令清理本地 Maven 仓库中的缓存以及无用依赖,重新下载所需的依赖。 mvn clean 方案二:检查依赖参…

    Java 2023年5月19日
    00
  • Java 中的Printstream介绍_动力节点Java学院整理

    Java 中的PrintStream 介绍 什么是 PrintStream PrintStream 是 Java 中用于输出数据的一个类,提供了一系列的 print() 和 println() 方法实现输出功能。 PrintStream 常用的构造方法有两种: PrintStream(File file) PrintStream(OutputStream o…

    Java 2023年5月26日
    00
  • SpringBoot的依赖管理配置

    Spring Boot的依赖管理配置是Spring Boot的一个重要特性,它可以帮助我们管理应用程序的依赖,简化应用程序的构建和部署。以下是Spring Boot的依赖管理配置的完整攻略: 添加依赖 在Spring Boot中,我们可以使用Maven或Gradle来添加依赖。以下是一个使用Maven添加依赖的示例: <dependency> &…

    Java 2023年5月15日
    00
  • 最优雅地整合 Spring & Spring MVC & MyBatis 搭建 Java 企业级应用(附源码)

    下面是关于整合Spring、Spring MVC和MyBatis的详细攻略,包含两个示例说明。 最优雅地整合 Spring & Spring MVC & MyBatis 搭建 Java 企业级应用 Spring、Spring MVC和MyBatis是Java企业级应用开发中常用的框架。在本文中,我们将介绍如何使用这三个框架进行整合,以搭建一个…

    Java 2023年5月17日
    00
  • Spring Data Jpa实现自定义repository转DTO

    针对这个话题,我提供以下完整攻略,包括两条示例说明。 Spring Data Jpa实现自定义repository转DTO 背景 在实际开发中,通常需要将领域模型(Entity)转换成数据传输对象(DTO)输出给客户端。如果每个DTO都手动转换一次,那么会导致大量的重复代码和工作量,因此我们需要一个高效的方式来完成这个任务。本文介绍如何通过Spring Da…

    Java 2023年6月3日
    00
  • Java 中如何使用 stream 流

    使用 stream 流是 Java 中进行集合 operations 和 transformations 的便捷方法。在 Java 8 中,我们可以对集合进行过滤、映射、排序等操作,可以省去繁琐的 for 循环和 if 判断。下面是 Java 中使用 stream 流的攻略: 一、为集合创建 stream 流 在 Java 中使用 stream 流,需要先为…

    Java 2023年5月26日
    00
  • Java读取.properties配置文件方法示例

    下面我将详细讲解Java读取.properties配置文件方法示例的完整攻略。 什么是.properties文件? .properties文件是Java程序中常用的配置文件,它以一组键值对的形式存储配置信息。对于程序中需要经常修改的数据,例如数据库连接信息、系统参数等,我们可以把这些数据放在.properties文件中,以便程序运行时动态读取。 Java读取…

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