java项目之班级同学录网站(ssm+mysql+jsp)
发布人:shili8
发布时间:2025-02-03 07:08
阅读次数:0
**Java项目之班级同学录网站 (SSM + MySQL + JSP)****项目背景**
在学校里,班级同学录是每个学生都非常重要的工具。它可以帮助我们记住同学们的信息、联系方式等。然而,传统的纸质同学录容易丢失或损坏,而电子版同学录则可以解决这些问题。
本项目旨在开发一个简单易用的班级同学录网站,使用SSM(Spring + Spring MVC + MyBatis)框架和MySQL数据库,前端使用JSP页面。该网站将提供基本的功能,如添加、删除、修改学生信息等。
**技术选型**
* **后端框架:** Spring* **Web框架:** Spring MVC* **持久层框架:** MyBatis* **数据库管理系统:** MySQL* **前端页面:** JSP###1.项目结构
markdowncom└── zhang └── studentrecord ├── StudentRecordApplication.java ├── config │ └── MyBatisConfig.xml ├── controller │ └── StudentController.java ├── entity │ └── Student.java ├── mapper │ └── StudentMapper.xml ├── service │ └── StudentService.java └── webapp ├── WEB-INF │ └── web.xml └── index.jsp
###2.配置文件#### **MyBatisConfig.xml**
xml<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config3.0//EN" " /><configuration> <settings> <setting name="cacheEnabled" value="true"/> </settings> <typeAliases> <typeAlias type="com.zhang.studentrecord.entity.Student" alias="Student"/> </typeAliases> </configuration>
#### **web.xml**
xml<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" /> xsi:schemaLocation=" /> version="2.5" xmlns=" /> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
###3.实体类#### **Student.java**
javapackage com.zhang.studentrecord.entity; public class Student { private Integer id; private String name; private String sex; private String birthday; private String address; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
###4.持久层#### **StudentMapper.xml**
xml<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper3.0//EN" " /><mapper namespace="com.zhang.studentrecord.mapper.StudentMapper"> <select id="selectAll" resultType="Student"> SELECT * FROM student </select> <insert id="addStudent" parameterType="Student"> INSERT INTO student (name, sex, birthday, address) VALUES (#{name}, #{sex}, #{birthday}, #{address}) </insert> <delete id="deleteStudent" parameterType="Integer"> DELETE FROM student WHERE id = #{id} </delete> <update id="updateStudent" parameterType="Student"> UPDATE student SET name = #{name}, sex = #{sex}, birthday = #{birthday}, address = #{address} WHERE id = #{id} </update> </mapper>
###5.业务逻辑层#### **StudentService.java**
javapackage com.zhang.studentrecord.service; import com.zhang.studentrecord.entity.Student; import com.zhang.studentrecord.mapper.StudentMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Servicepublic class StudentService { @Autowired private StudentMapper studentMapper; public ListgetAllStudents() { return studentMapper.selectAll(); } public void addStudent(Student student) { studentMapper.addStudent(student); } public void deleteStudent(Integer id) { studentMapper.deleteStudent(id); } public void updateStudent(Student student) { studentMapper.updateStudent(student); } }
###6.控制器#### **StudentController.java**
javapackage com.zhang.studentrecord.controller; import com.zhang.studentrecord.entity.Student; import com.zhang.studentrecord.service.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller@RequestMapping("/student") public class StudentController { @Autowired private StudentService studentService; @GetMapping("/list") public String list(ModelMap model) { Liststudents = studentService.getAllStudents(); model.addAttribute("students", students); return "list"; } @PostMapping("/add") public String add(Student student) { studentService.addStudent(student); return "redirect:/student/list"; } @GetMapping("/delete") public String delete(@RequestParam Integer id) { studentService.deleteStudent(id); return "redirect:/student/list"; } @GetMapping("/update") public String update(ModelMap model, @RequestParam Integer id) { Student student = studentService.getAllStudents().stream() .filter(s -> s.getId().equals(id)) .findFirst() .orElse(null); if (student != null) { model.addAttribute("student", student); } return "update"; } @PostMapping("/update") public String update(Student student) { studentService.updateStudent(student); return "redirect:/student/list"; } }
###7.前端页面#### **index.jsp**
jsp<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>班级同学录</title> </head> <body> <h1>班级同学录</h1> <a href="${pageContext.request.contextPath}/student/list">查看所有学生信息</a><br/> <a href="${pageContext.request.contextPath}/student/add">添加新学生信息</a><br/> <a href="${pageContext.request.contextPath}/student/delete?id=1">删除学生信息</a><br/> <a href="${pageContext.request.contextPath}/student/update?id=2">修改学生信息</a> </body> </html>
#### **list.jsp**
jsp<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>班级同学录</title> </head> <body> <h1>班级同学录</h1> <table border="1"> <tr> <th>ID</th> <th>姓名</th> <th>性别</th> <th>出生日期</th> <th>地址</th> </tr> <c:forEach items="${students}" var="student"> <tr> <td>${student.id}</td> <td>${student.name}</td> <td>${student.sex}</td> <td>${student.birthday}</td> <td>${student.address}</td> </tr